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语句时,表自动重载,而你直接修改授权表时不是。)