欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL中用户授权以及删除授权的方法

程序员文章站 2024-02-22 11:38:28
用户授权方法 你可以通过发出grant语句增加新用户:  shell> mysql --user=root mysql   mysql> gran...

用户授权方法

你可以通过发出grant语句增加新用户:

 shell> mysql --user=root mysql
  mysql> grant all privileges on *.* to monty@localhost
  identified by 'something' with grant option;
  mysql> grant all privileges on *.* to monty@"%"
  identified by 'something' with grant option;
  mysql> grant reload,process on *.* to admin@localhost;
  mysql> grant usage on *.* to dummy@localhost;

这些grant语句安装3个新用户

授权:

命令:

grant privileges on databasename.tablename to 'username'@'host'

说明: privileges - 用户的操作权限,如select , insert , update 等(详细列表见该文最后面).如果要授予所的权限则使用all.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.

例子:

grant select, insert on test.user to 'pig'@'%'; 
grant all on *.* to 'pig'@'%';

注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:

grant privileges on databasename.tablename to 'username'@'host' with grant option;

三.设置与更改用户密码

命令:

set password for 'username'@'host' = password('newpassword');

如果是当前登陆用户用

set password = password("newpassword");

例子:

set password for 'pig'@'%' = password("123456");

撤权并删除用户

要取消一个用户的权限,使用revoke语句。revoke的语法非常类似于grant语句,除了to用from取代并且没有indetifed by和with grant option子句:

revoke privileges (columns) on what from user

user部分必须匹配原来 grant语句的你想撤权的用户的user部分。privileges部分不需匹配,你可以用grant语句授权,然后用revoke语句只撤销部分权限。

revoke语句只删除权限,而不删除用户。即使你撤销了所有权限,在user表中的用户记录依然保留,这意味着用户仍然可以连接服务器。要完全删除一个用户,你必须用一条delete语句明确从user表中删除用户记录:

%mysql -u root mysqlmysql>delete from user ->where user="user_name" and host="host_name";mysql>flush privileges;

delete语句删除用户记录,而flush语句告诉服务器重载授权表。(当你使用grant和revoke语句时,表自动重载,而你直接修改授权表时不是。)