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

来源:互联网 发布:淘宝店铺释放后保证金 编辑:程序博客网 时间:2024/05/16 05:51

            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';

   权限粒度可大可小吧,大至全局,小至单列,设置运用都能自如,不过需要注意,权限设置完毕之后,如果要马上生效,记得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();


1 0
原创粉丝点击