【MySQL 14】用户管理

🌈 一、用户管理

  • MySQL 也会区分普通用户和超级用户。
  • 如果只是访问某一个数据库,甚至是某个数据库中的某张表,就可以为他创建一个普通用户,并为其赋予对应的权限,让这个用户无法看到数据库中的其他数据,防止该用户对其他数据进行操作。

⭐ 1. 用户信息

  • MySQL 中有一个名为 mysql 的数据库。

image-20240826092827421

  • 在这个 mysql 数据库中,有一个名为 user 的表,MySQL 的用户都存在这张表里。
    • user 表示用户名。host 表示用户可以从哪个主机登录 (localhost 表示只能本机登录)。

image-20240826093426479

⭐ 2. 创建用户

create user '用户名'@'登陆主机/ip' identified by '密码';
  • 如果要设置成允许远程登录,登录主机可以使用 % 模糊匹配表示该用户能在任何主机登录。
  • 如果要设置成只能本机登录,登录主机就必须设置成 localhost 或 127.0.0.1

举个栗子

  • 创建一个名为 wukong 的用户,并使用 % 作为登录主机,让该用户能在任意主机登录。

image-20240826094433766

  • 创建成功之后,该用户的相关信息就被写入到 user 表中了。

image-20240826094605823

  • 此时就能用刚刚新建的普通用户 wukong 来连接数据库了。

image-20240826094814260

  • 由于该用户可以从任意地方登录,因此如果在下也安装了 MySQL,就可以用 cmd 窗口进行远程登录。
    • -h 需要的是对应的远程主机的 ip

image-20240826103137613

⭐ 3. 修改密码

alter user '用户名'@'登录主机' identified by '新的密码';
  • 例:将普通用户 wukong 的密码修改为 778899

image-20240826102009115

  • 注:普通用户只能改自己的密码,而超级用户 root 能改任何用户的。

⭐ 4. 删除用户

drop user '用户名'@'登录主机';
  • 例:将之前创建的普通用户 wukong 删除掉,此时再查 user 表就会发现 wukong 已经没了。

image-20240826104607851

  • 注:删除用户时如果不指明待用户的登录主机,则默认删除的是登录主机为 % 的用户。

🌈二、数据库的权限

⭐ 1. 权限列表

  • MySQL 所提供的权限列表如下
权限列名上下文
CREATECreate_priv数据库、表或索引
DROPDrop_priv数据库或表
GRANT OPTIONGrant_priv数据库、表或保存的程序
REFERENCESReferences_priv数据库或表
ALTERAlter_priv
DELETEDelete_priv
INDEXIndex_priv
SELECTSelect_priv
UPDATEUpdate_priv
CREATE VIEWCreate_view_priv视图
ALTER ROUTINEAlter_routine_priv保存的程序
CREATE ROUTINECreate_routine_priv保存的程序
EXECUTEExecute_priv保存的程序
FILEFile_priv服务器主机上的文件访问
CREATE TEMPORARY TABLESCreate_tmp_table_priv服务器管理
LOCK TABLESLock_tables_priv服务器管理
CREATE USERCreate_user_priv服务器管理
PROCESSProcess_priv服务器管理
RELOADReload_priv服务器管理
REPLICATION CLIENTRepl_client_priv服务器管理
REPLICATION SLAVERepl_slave_priv服务器管理
SHOW DATABASESShow_db_priv服务器管理
SHUTDOWNShutdown_priv服务器管理
SUPERSuper_priv服务器管理

⭐ 2. 查看权限

  • 可以使用如下指令查看指定用户所具有的权限。
show grants for '用户名'@'登录地址';

举个栗子

  • 查看 oj_client 这个用户所拥有的权限。

image-20240826114236753

⭐ 3. 授予权限

  • 可以使用下面的指令给指定用户授权。
grant 权限列表 on.对象名 to '用户名'@'登陆地址' [identified by '密码'];
  • 权限列表:表示要授予用户什么权限,多个权限之间使用都逗号隔开。
  • ‘用户名’@‘登录地址’:表示给哪一个用户授权。
  • 库名.对象名:表示要授予给用户哪个数据库下的哪个对象的权限。
    • *.*:表示本系统中的所有数据库的所有对象 (表、视图、存储过程等)。
    • 库.*:表示某个数据库中的所有数据对象 (表、视图、存储过程等)。
  • identified by ‘密码’:可选项,如果指定用户存在,则在授予其权限的同时修改该用户的密码,如果用户不存在,则用这个密码创建该用户。

举个栗子

  • 使用 root 创建普通用户 BlackMyth,并让其能够远程登录。

image-20240826111326948

  • 使用 root 创建一个 rootdb 数据库。

image-20240826111647832

  • 为 rootdb 数据库添加一张测试表,并为其插入数据。

image-20240826112534590

  • 使用远程登录 BlackMyth 数据库。

image-20240826111738910

  • BlackMyth 这个普通用户看不到 root 创建的 rootdb 数据库。

image-20240826111922277

  • 让 root 赋予 BlackMyth 这个用户对 rootdb 数据库下所有对象的 select 权限。

image-20240826112341856

  • 此时在远端登录的 BlackMyth 这个用户就能看到 rootdb 这个数据库了。

image-20240826112648269

  • BlackMyth 用户对 rootdb 库中的所有对象都只能作 select 查询操作。

image-20240826113147176

⭐ 4. 回收权限

revoke 权限列表 on.对象名 from '用户名'@'登陆地址';
  • 回收权限的语法结构与授权的语法结构一样,只不过将 to 关键字改成了 from。

举个栗子

  • 回收 BlackMyth 这个用户对 rootdb 这个数据的所有权限。

image-20240826113713780

  • 此时再查看 BlackMyth 所拥有的权限,可以发现其对 rootdb 下所有对象的 select 权限已经没了。

image-20240826114401492

  • 回收了用户对某个数据库的权限后,在该用户下一次进入该数据库时才会起作用。
  • 如果回收权限时该用户正在使用对应数据库,那么回收权限后该用户仍然拥有对应的权限。
### 解决PyCharm无法加载Conda虚拟环境的方法 #### 配置设置 为了使 PyCharm 能够成功识别并使用 Conda 创建的虚拟环境,需确保 Anaconda 的路径已正确添加至系统的环境变量中[^1]。这一步骤至关重要,因为只有当 Python 解释器及其关联工具被加入 PATH 后,IDE 才能顺利找到它们。 对于 Windows 用户而言,在安装 Anaconda 时,默认情况下会询问是否将它添加到系统路径里;如果当时选择了否,则现在应该手动完成此操作。具体做法是在“高级系统设置”的“环境变量”选项内编辑 `Path` 变量,追加 Anaconda 安装目录下的 Scripts 文件夹位置。 另外,建议每次新建项目前都通过命令行先激活目标 conda env: ```bash conda activate myenvname ``` 接着再启动 IDE 进入工作区,这样有助于减少兼容性方面的问题发生概率。 #### 常见错误及修复方法 ##### 错误一:未发现任何解释器 症状表现为打开 PyCharm 新建工程向导页面找不到由 Conda 构建出来的 interpreter 列表项。此时应前往 Preferences/Settings -> Project:...->Python Interpreter 下方点击齿轮图标选择 Add...按钮来指定自定义的位置。按照提示浏览定位到对应版本 python.exe 的绝对地址即可解决问题。 ##### 错误二:权限不足导致 DLL 加载失败 有时即使指定了正确的解释器路径,仍可能遇到由于缺乏适当的操作系统级许可而引发的功能缺失现象。特别是涉及到调用某些特定类型的动态链接库 (Dynamic Link Library, .dll) 时尤为明显。因此拥有管理员身份执行相关动作显得尤为重要——无论是从终端还是图形界面触发创建新 venv 流程均如此处理能够有效规避此类隐患。 ##### 错误三:网络连接异常引起依赖下载超时 部分开发者反馈过因网速慢或者其他因素造成 pip install 操作中途断开进而影响整个项目的初始化进度条卡住的情况。对此可尝试调整镜像源加速获取速度或是离线模式预先准备好所需资源包后再继续后续步骤。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值