Mysql中查看用户、创建用户、删除用户、授权用户、回收授权 |
您所在的位置:网站首页 › mysql建的表不见了 › Mysql中查看用户、创建用户、删除用户、授权用户、回收授权 |
一、创建用户
1.语法 查看用户没有直接的SQL语句,需要进入 mysql数据库的user表(mysql库和user表是mysql安装后就有的)查看所有用户信息。代码如下: use mysql; select * from user;2. 结果示例: 3.注意事项 5.7版本后,移除了password字段, 而是改成了字段authentication_string来存储用户密码。 二、创建用户1.语法 CREATE USER 'user_name'@'host' IDENTIFIED BY 'password';参数: user_name:要创建用户的名字。 host:表示要这个新创建的用户允许从哪台机登陆,如果只允许从本机登陆,则填‘localhost’ ,如果允许从远程登陆,则填远程主机的ip,如果允许所有的主机,则填通配符"%"。 password:新创建用户的登陆数据库密码,如果没密码可以不写。 2.示例 //新建用户czt,密码为123456,只能从本地登陆mysql所在服务器 CREATE USER 'czt'@'localhost' IDENTIFED BY '123456'; //新建用户czt,密码为123456,可以从其他电脑远程登陆mysql所在服务器 CREATE USER 'czt'@'%' IDENTIFED BY '123456'; //新建用户czt,没有密码,可以从其他电脑远程登陆mysql服务器 CREATE USER 'czt'@'%'; 三、删除用户1.语法 DROP USER 'user_name'@'host';参数:user_name:要删除的用户名 host:主机名或IP 2.示例 DROP USER 'czt'@'%'; //表示删除用户czt四、设置与更改用户密码 1.语法 // 设置指定主机指定用户的密码 SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword'); // 设置当前主机当前用户的密码 SET PASSWORD = PASSWORD('newpassword');2.示例 // 设置指定本机的czt用户设置密码123456 SET PASSWORD FOR 'czt'@'localhost' = PASSWORD('123456'); // 设置当前主机当前用户的密码为123456 SET PASSWORD = PASSWORD('123456');注意:第二个PASSWORD()是函数,用来给用密码加密 五、授权用户1.语法 grant privileges on databasename.tablename to 'username'@'host'参数: privileges:表示要授予什么权力,例如select、insert、update等,如果要授予全部权力,则填 all privileges,privileges可以省略 databasename.tablename:表示用户的权限是用在哪个库的哪个表,如果想要用户的权限作用于所有数据库的所有表,则填 *.*,*是一个通配符,表示全部。 ’username‘@‘host’:表示授权给哪个主机的哪个用户。 2.示例 //给用户czt授权在test库的person表上执行insert和select的权利 grant select, insert ON test.person TO 'czt'@'%'; //给用户czt授权在所有库所有表的所有的权力。 grant all on *.* TO 'czt'@'%'; // 操作MySQL外键权限。 grant references on testdb.* to 'czt'@'192.168.0.2'; // 操作MySQL临时表权限。 grant create temporary tables on testdb.* to 'czt'@'192.168.0.2'; //操作MySQL索引权限。 grant index on testdb.* to 'czt'@'192.168.0.2'; //操作 MySQL视图、查看视图源代码权限。 grant create view on testdb.* to 'czt'@'192.168.0.2'; grant show view on testdb.* to 'czt'@'192.168.0.2'; // 操作MySQL存储过程、函数 权限。 grant create routine on testdb.* to 'czt'@'192.168.0.2'; grant alter routine on testdb.* to 'czt'@'192.168.0.2'; grant execute on testdb.* to 'czt'@'192.168.0.2';3.权限传递 让用以上命令授权的用户不能给其他用户授权,如果想这个用户能够给其他用户授权,需要在后面加上WITH GRANT OPTION,如 GRANT ALL ON *.* TO 'aaa'@'%' WITH GRANT OPTION; 六、回收权限1.语法 REVOKE privileges ON database.tablename FROM 'username'@'host';2.示例 REVOKE select ON test.person FROM 'czt'@'localhost';3.注意事项 如果给用户'czt'@'%'授权时使用GRANT SELECT ON test.user TO 'czt'@'%',则使用REVOKE SELECT ON *.* FROM 'czt'@'%';命令并不能撤销该用户对test数据库中user表的SELECT 权限。相反,如果授权使用的是GRANT SELECT ON *.* TO 'czt'@'%';则REVOKE SELECT ON test.user FROM 'czt'@'%';命令也不能撤销该用户对test数据库中user表的select权限。 如果想查看用户的具体权限信息,可以用命令SHOW GRANTS FOR 'czt'@'%'; 查看。 七、注意事项1. flush prrivileges:可以在不重启mysql服务器的情况下,让用户数据和权限的修改立即生效 2. grant, revoke 用户权限后,该用户只有重新连接 MySQL 数据库,权限才能生效 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |