首页 > 代码库 > MySQL 用户管理及权限管理
MySQL 用户管理及权限管理
MySQL 默认有个root
用户,但是这个用户权限太大,一般只在管理数据库时候才用。如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接。
在 MySQL 命令行模式下输入如下命令可以为 MySQL 创建一个新用户:
CREATE USER username IDENTIFIED BY ‘password‘;
新用户创建完成,但是此刻如果以此用户登陆的话,会报错,因为我们还没有为这个用户分配相应权限,分配权限的命令如下:
GRANT ALL PRIVILEGES ON *.* TO ‘username‘@‘localhost‘ IDENTIFIED BY ‘password‘;
授予username
用户在所有数据库上的所有权限。
如果此时发现刚刚给的权限太大了,如果我们只是想授予它在某个数据库上的权限,那么需要切换到root
用户撤销刚才的权限,重新授权:
REVOKE ALL PRIVILEGES ON *.* FROM ‘username‘@‘localhost‘; GRANT ALL PRIVILEGES ON wordpress.* TO ‘username‘@‘localhost‘ IDENTIFIED BY ‘password‘;
甚至还可以指定该用户只能执行 select
和 update
命令:
GRANT SELECT, UPDATE ON wordpress.* TO ‘username‘@‘localhost‘ IDENTIFIED BY ‘password‘;
这样一来,再次以username
登陆 MySQL,只有wordpress
数据库是对其可见的,并且如果你只授权它select
权限,那么它就不能执行delete
语句。
另外每当调整权限后,通常需要执行以下语句刷新权限:
FLUSH PRIVILEGES;
删除刚才创建的用户:
DROP USER username@localhost;
仔细上面几个命令,可以发现不管是授权,还是撤销授权,都要指定响应的host
(即 @ 符号后面的内容),因为以上及格命令实际上都是在操作mysql
数据库中的user
表,可以用如下命令查看相应用户及对应的host
:
SELECT User, Host FROM user;
当然,这个表中还包含很多其它例如用户密码、权限设置等很多内容,操作时候尤其需要小心。
MySQL 用户管理及权限管理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。