5、Mysql的用户权限管理--查看,授权,回收

            MySql用户管理使用CREATE USER,DROP USER,RENAME USER,SET PASSWORD等语法来完成,而MySql中用户权限配置管理中大部分都可以使用GRANT(赋予权限)和REVOKE(撤销权限)这两个语法来操作。其中,需要注意的是GRANT语句来赋予权限时,当被赋予权限的用户在系统中不存在时,会创建该用户,而后对该用户进行权限赋予。而REVOKE语句用来权限回收(撤销权限)时,即使被操作的用户所有的权限都被回收,但该用户并不会删除,要删除用户,请使用DROP USER或者直接到mysql.user中删除该用户。


1、关于GRANT的具体实例

-- 1.赋予someuser@%这个用户在myDatabase上的所有权限
--  % 表示任意主机
--  如果用户不存在,则创建用户,密码为:somepassword
--  with grant option 表示这个用户,还可以授权给其他人
GRANT ALL ON myDatabasse.* TO 'someuser'@'%' IDENTIFIED BY 'somepassword' <span style="color:#ff0000;">with grant option</span> ;
 
-- 2. 赋予someuser@somehost这个用户在myDatabase上的权限
-- 该用户仅有SELECT和INSERT权限
GRANT SELECT, INSERT ON myDatabase.* TO 'someuser'@'somehost';
 
-- 3. 赋予someuser@somehost这个用户在myDatabase上myTbl表的权限
-- 该用户仅有myDatabase。myTbl上的SELECT和INSERT权限
GRANT SELECT, INSERT ON myDatabase.myTbl TO 'someuser'@'somehost';
 
-- 4. 赋予someuser@somehost这个用户在myDatabase上myTbl表的权限
-- 该用户仅有myDatabase.myTbl上某些列上有权限:
-- myTbl的colName1有SELECT和INSERT权限
-- myTbl的colName2只有INSERT权限
GRANT SELECT (colName1), INSERT(ColName1,ColName2) ON myDatabase.myTbl TO 'someuser'@'somehost';<strong>
</strong>

   权限粒度可大可小吧,大至全局,小至单列,设置运用都能自如,不过需要注意,权限设置完毕之后,如果要马上生效,记得FLUSH PRIVILEGES一下哦。


2、关于REVOKE的用法


    1、官方文档   

REVOKE
    priv_type [(column_list)]
      [, priv_type [(column_list)]] ...
    ON [object_type] priv_level
    FROM user [, user] ...

<pre name="code" class="sql">#如果你要回收某用户的所有权限,那么可以简单的使用下面这样的语句:
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...

 
 

    2、具体案例

-- 1.回收someuser@somehost这个用户所有权限
-- 注意: REVOKE并不会删除用户,即使权限被你扒光
-- 另外:如果你没有指定@后面的host,默认是使用%
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'someuser'@'somehost';
-- 2.回收someuser@somehost这个用户在myDatabase上的DROP权限
REVOKE DROP ON myDatabase.* FROM 'someuser'@'somehost';

3、查看用户的权限

    1、查看指定用户的权限

    

SHOW GRANTS FOR user;
#user就是你要查看权限的用户,如果你不使用@host的方式,默认host是%。

    2、查看当前用户的权限,下面的任何一个   

SHOW GRANTS;
SHOW GRANTS FOR CURRENT_USER;
SHOW GRANTS FOR CURRENT_USER();

   













你可能感兴趣的:(mysql,权限管理,grant,show,revoke,GRANTS)