mysql怎么管理权限 mysql如何设置权限( 二 )


mysql show grants for ytt2@'localhost';+---------------------------------------------------------------------------------+| Grants for ytt2@localhost|+---------------------------------------------------------------------------------+| GRANT INSERT, UPDATE, DELETE, CREATE, ALTER, SUPER ON *.* TO ytt2@localhost |+---------------------------------------------------------------------------------+1 row in set (0.00 sec)
但是现在我只想这个用户有 SUPER 的子集,设置变量的权限 。那么单独给这个用户赋予两个能设置系统变量的动态权限,完了把 SUPER 给拿掉 。
mysql grant session_variables_admin,system_variables_admin on *.* to ytt2@'localhost';Query OK, 0 rows affected (0.03 sec)mysql revoke super on *.* from ytt2@'localhost';Query OK, 0 rows affected, 1 warning (0.02 sec)
我们看到这个 WARNINGS 提示 SUPER 已经废弃了 。
mysql show warnings;
+---------+------+----------------------------------------------+
| Level| Code | Message|
+---------+------+----------------------------------------------+
| Warning | 1287 | The SUPER privilege identifier is deprecated |
+---------+------+----------------------------------------------+
1 row in set (0.00 sec)`
mysql show grants for ytt2@'localhost';
+-----------------------------------------------------------------------------------+
| Grants for ytt2@localhost|
+-----------------------------------------------------------------------------------+
| GRANT INSERT, UPDATE, DELETE, CREATE, ALTER ON *.* TO ytt2@localhost|
| GRANT SESSION_VARIABLES_ADMIN,SYSTEM_VARIABLES_ADMIN ON *.* TO ytt2@localhost |
+-----------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
当然图 2 上还有其它的动态权限,这里就不做特别说明了 。
mysql中不能设置列的权限一、用户管理
1、登录mysql
mysql –h hostname|hostIP –P port –u username –p DatabaseName –e "SQL语句"
比如
mysql -uroot -p -hlocalhost -P3306 mysql -e "select host,user from user"
-h参数 后面接主机名或者主机IP,hostname为主机,hostIP为主机IP 。
-P参数 后面接MySQL服务的端口,通过该参数连接到指定的端口 。MySQL服务的默认端口是3306,
不使用该参数时自动连接到3306端口 , port为连接的端口号 。
-u参数 后面接用户名,username为用户名 。
-p参数 会提示输入密码 。
DatabaseName参数 指明登录到哪一个数据库中 。如果没有该参数,就会直接登录到MySQL数据库
中,然后可以使用USE命令来选择数据库 。
-e参数 后面可以直接加SQL语句 。登录MySQL服务器以后即可执行这个SQL语句 , 然后退出MySQL
服务器 。
2、创建用户
CREATE USER 用户名 [IDENTIFIED BY '密码'][,用户名 [IDENTIFIED BY '密码']];
比如
CREATE USER 'kangshifu'@'localhost' IDENTIFIED BY '123456';
用户名参数表示新建用户的账户,由 用户(User) 和 主机名(Host) 构成;
“[ ]”表示可?。?也就是说,可以指定用户登录时需要密码验证,也可以不指定密码验证,这样用户
可以直接登录 。不过 , 不指定密码的方式不安全,不推荐使用 。如果指定密码值,这里需要使用
IDENTIFIED BY指定明文密码值 。
CREATE USER语句可以同时创建多个用户 。
3、更新用户
UPDATE mysql.user SET USER='li4' WHERE USER='wang5';
FLUSH PRIVILEGES;
4、删除用户
方式1:使用DROP方式删除(推荐)
使用DROP USER语句来删除用户时,必须用于DROP USER权限 。DROP USER语句的基本语法形式如下
DROP USER user[,user]…;
比如
DROP USER li4 ; # 默认删除host为%的用户
DROP USER 'kangshifu'@'localhost';

推荐阅读