1、mysql> grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’; 权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。 当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。 --注:privileges可以省略 当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。 用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用"%"表示从任何地址连接。 如:mysql>grant select,insert,update,delete on *.* to user1@"%" Identified by "123" 给来自所有地址的用户user1分配可对所有数据库所有表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123。
如果想让授权的用户,也可以将这些权限 grant 给其他用户,需要选项 “grant option“
grant select on testdb.* to dba@localhost with grant option; 这个特性一般用不到。实际中,数据库权限最好由 DBA 来统一管理。 2、刷新系统权限表 mysql>flush privileges; 注意,授权后必须FLUSH PRIVILEGES;否则无法立即生效。 3、查看 MySQL 用户权限 查看当前用户(自己)权限:
show grants; 查看其他 MySQL 用户权限:
show grants for dba@localhost; 4、删除授予的权限
revoke all on *.* from dba@localhost;
--转自
|