mysql 权限管理

来源:互联网 发布:可以看老王搞事的软件 编辑:程序博客网 时间:2024/05/15 14:41
1.添加用户:
    方法一:
       
CREATE USER 'wangda'[@'localhost'] [IDENTIFIED BY [PASSWORD] '000000'];


    说明:创建一个本地的用户,用户名为'wangda',密码为'000000',如果密码为空, 则 "[IDENTIFIED BY [PASSWORD] '000000']"这个可以不写,如果password是由PASSWORD()函数返回的混编值, 则需要在密码前面写上关键字 'PASSWORD',这个创建的用户没有任何的权限, 需要为这个用户添加权限(GRANT)

    方法二:
       
GRANT ALL ON *.* 'wangda'[@'192.168.1.184'][IDENTIFIED BY [PASSWORD] '000000'];


    说明:这个方法同样和方法一样能创建一个用户,只不过这个用户只能在192.168.1.184登录, 用户名也为'wangda', 和方法一不一样的是, 这条语句同时给这个用户赋予全局权限.

    方法三:
      
INSET INTO `user` (`Host`,`User`,`Password`) VALUES('%','wangda1',PASSWORD('000000'));FLUSH PRIVILEGES;


    说明:直接插入表来建立一个user, FLUSH PRIVILEGES语句,告诉一个正在运行的服务器再次开始使用授权表(重新导入权限表), 这个用户wangda1,可以通过任何远程电脑访问,如果本地也可以登录的话, 需要在本地重新创建一个wangda1的用户( INSET INTO `user` (`Host`,`User`,`Password`) VALUES('localhost','wangda1',PASSWORD('000000')); ), 这个用户没有任何权限.

2.分配权限 GRANT:
  a.创建一个只能本地访问的超级管理员账户,但只能从本机访问。密码是'obscure', 如果没有密码, 则"IDENTIFIED BY 'obscure';"不写
  方法一:
 
GRANT ALL PRIVILEGES        ON *.*        TO 'custom'@'localhost'        IDENTIFIED BY 'obscure';


   方法二:
 
INSERT INTO user        VALUES('localhost','monty',PASSWORD('obscure'),        'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');FLUSH PRIVILEGES;


   说明: 当你用INSERT创建账户时使用FLUSH PRIVILEGES的原因是告诉服务器重读授权表。否则,只有重启服务器后更改方会被注意到。使用 GRANT,则不需要使用FLUSH PRIVILEGES。请注意要设置超级用户账户,只需要创建一个权限列设置为'Y'的user表条目。user表权限为全局权限,因此其它 授权表不再需要条目。
 
   b.创建一个只可以对expenses数据库中所有表的 查询, 插入, 更新,删除, 创建新表,删除表的操作.这个用户"custom"只能在"whitehouse.gov"这个主机访问, 如果没有密码, 则"IDENTIFIED BY 'obscure';"不写
   方法一:
  
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP        ON expenses.*        TO 'custom'@'whitehouse.gov'        IDENTIFIED BY 'obscure';


   方法二:
   
INSERT INTO user        (Host,User,Password)        VALUES('whitehouse.gov','custom', PASSWORD('obscure'));   INSERT INTO db        (Host,Db,User,Select_priv,Insert_priv,        Update_priv,Delete_priv,Create_priv,Drop_priv)        VALUES('localhost','bankaccount','custom',                Y','Y','Y','Y','Y','Y');FLUSH PRIVILEGES; 


   说明: 方法二先创建一个用户, 在给这个用户分配权限

   c.创建一个和方法二一样的用户,但是这个用户可以在任何电脑访问, 除了本地.
 
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP        ON expenses.*        TO 'custom1'@'%'        IDENTIFIED BY 'obscure';


3.删除用户: DROP USER 'wangda'[@'localhost'];
4.删除用户权限: REVOKE ALL ON *.* FROM 'wangda'[@'localhost']
原创粉丝点击