MySQL - 用户及权限管理

可以用 CREATE USER 或 GRANT 创建用户,后者还同时分配相关权限。而 REVOKE 则用于删除用户权限,DROP USER 删除账户。 
mysql> grant all on test.* to user1@'%' identified by '123456' with grant option; 
# 创建特权管理用户 
mysql> show grants for user1; # 查看用户权限

GRANT 语法: 
GRANT privileges (columns)
    ON what
    TO user IDENTIFIED BY "password"
    WITH GRANT OPTION

权限列表:
  • ALTER: 修改表和索引。
  • CREATE: 创建数据库和表。
  • DELETE: 删除表中已有的记录。
  • DROP: 抛弃(删除)数据库和表。
  • INDEX: 创建或抛弃索引。
  • INSERT: 向表中插入新行。
  • REFERENCE: 未用。
  • SELECT: 检索表中的记录。
  • UPDATE: 修改现存表记录。
  • FILE: 读或写服务器上的文件。
  • PROCESS: 查看服务器中执行的线程信息或杀死线程。
  • RELOAD: 重载授权表或清空日志、主机缓存或表缓存。
  • SHUTDOWN: 关闭服务器。
  • ALL: 所有权限,ALL PRIVILEGES同义词。
  • USAGE: 特殊的 "无权限" 权限。
用 户账户包括 "username" 和 "host" 两部分,后者表示该用户被允许从何地接入。user1@'%' 表示任何地址,默认可以省略。还可以是 "user1@192.168.1.%"、"user1@%.abc.com" 等。数据库格式为 db@table,可以是 "test.*" 或 "*.*",前者表示 test 数据库的所有表,后者表示所有数据库的所有表。 

子句 "WITH GRANT OPTION" 表示该用户可以为其他用户分配权限。 

我们用 root 再创建几个用户,然后由 test 数据库的管理员 user1 为他们分配权限。 
mysql> create user user2 identified by '123456', user3 identified by 'abcd'; 
好了,我们退出改用 user1 登录并针对 test 数据库进行操作。 
mysql> quit # 退出
Bye

$ mysql -u user1 -p123456 test # 使用新用户登录

接下来我们为 user2, user3 分配权限。 
mysql> grant select on test.* to user2; # 为 user2 分配 SELECT 权限。 
mysql> grant select on test.* to user3; # 为 user3 分配 SELECT 权限。 
mysql> grant insert, update on test.* to user2; # 再为 user2 增加 INSERT, UPDATE 权限。
好了,到此我们基本完成了创建用户和分配权限的操作。接下来,我们回到 root 进行修改用户密码和删除用户操作。 
mysql> set password for user3=password('abcabc'); # 修改用户 user3 密码
mysql>flush privileges; # 刷新权限表(通常只在直接修改相关管理数据表后需要该操作)
mysql> revoke all on *.* from user2; # 移除 user2 在所有数据库上的权限  
mysql> drop user user2; # 删除 user2 账户 
要修改自己的密码直接执行 "set password = password('new_password');" 即可。 

------- 摘要 -------------------------------------- 

创建用户:
GRANT insert, update ON testdb.* TO user1@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
CREATE USER user2 IDENTIFIED BY 'password';

分配权限:
GRANT select ON testdb.* TO user2;

查看权限:
SHOW GRANTS FOR user1;

修改密码:
SET PASSWORD FOR user1 = PASSWORD('newpwd');
SET PASSWORD = PASSWORD('newpwd');

移除权限:
REVOKE all ON *.* FROM user1; 

删除用户:
DROP USER user1;

数据库列表:
SHOW DATABASES;

数据表列表:
SHOW TABLES;

当前数据库:
SELECT DATABASE();

当前用户:
SELECT USER();

数据表结构:
DESCRIBE table1;

刷新权限:
FLUSH PRIVILEGES;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值