【MySQL】七,用户管理与权限管理

用户管理

登录MySQL

mysql –h hostname|hostIP –P port –u username –p DatabaseName –e "SQL语句"
  • -h参数 后面接主机名或者主机IP,hostname为主机,hostIP为主机IP。
  • -P参数 后面接MySQL服务的端口,通过该参数连接到指定的端口。MySQL服务的默认端口是3306,不使用该参数时自动连接到3306端口,port为连接的端口号。
  • -u参数 后面接用户名,username为用户名。
  • -p参数 会提示输入密码。
  • DatabaseName参数 指明登录到哪一个数据库中。如果没有该参数,就会直接登录到MySQL数据库中,然后可以使用USE命令来选择数据库。
  • -e参数 后面可以直接加SQL语句。登录MySQL服务器以后即可执行这个SQL语句,然后退出MySQL
    服务器。
mysql -uroot -p -hlocalhost -P3306 mysql -e "select host,user from user"

创建用户

CREATE USER 用户名 [IDENTIFIED BY '密码'][,用户名 [IDENTIFIED BY '密码']];
CREATE USER zhang3 IDENTIFIED BY '123123'; # 默认host是 %

修改用户

UPDATE mysql.user SET USER='li4' WHERE USER='zhang3';
FLUSH PRIVILEGES;

删除用户

DROP USER user[,user];
drop user li4;

默认删除host为%的用户

drop user zhang3@localhost;

修改当前用户密码

ALTER USER命令

ALTER USER USER() IDENTIFIED BY 'new_password';

SET语句

SET PASSWORD='new_password';

修改其他用户密码

使用ALTER语句来修改普通用户的密码

ALTER USER user [IDENTIFIED BY '新密码'] [,user[IDENTIFIED BY '新密码']];

使用SET命令来修改普通用户的密码

SET PASSWORD FOR 'username'@'hostname'='new_password';

权限管理

权限列表

MySQL具备的权限

show privileges;
  • CREATE和DROP权限:可以创建新的数据库和表,或删除(移掉)已有的数据库和表。
  • SELECT、INSERT、UPDATE和DELETE权限:允许在一个数据库现有的表上实施操作。
  • SELECT权限:只有在它们真正从一个表中检索行时才被用到。
  • INDEX权限:允许创建或删除索引,INDEX适用于已有的表。如果具有某个表的CREATE权限,就可以在CREATE TABLE语句中包括索引定义。
  • ALTER权限:可以使用ALTER TABLE来更改表的结构和重新命名表。
  • CREATE ROUTINE权限:用来创建保存的程序(函数和程序),ALTER ROUTINE权限用来更改和删除保存的程序。
  • EXECUTE权限:用来执行保存的程序。
  • GRANT权限:允许授权给其他用户,可用于数据库、表和保存的程序。
  • FILE权限:使用户可以使用LOAD DATA INFILE和SELECT … INTO OUTFILE语句读或写服务器上的文件,任何被授予FILE权限的用户都能读或写MySQL服务器上的任何文件。

权限授予的原则

只授予能满足需要的最小权限
创建用户的时候 限制用户的登录主机 ,一般是限制成指定IP或者内网IP段。
为每个用户 设置满足密码复杂度的密码 。
定期清理不需要的用户 ,回收权限或者删除用户。

授予权限

两种方式
1、角色赋予用户给用户授予权限。
2、直接给用户授权。
授权命令

GRANT 权限1,权限2,…权限n ON 数据库名称.表名称 TO 用户名@用户地址 [IDENTIFIED BY ‘密码口令’];

授予zhangsan用户select和update权限

grant select,update on dbtest01.employees to zhangsan;

授予删除权限

grant delete on dbtest01.employees to zhangsan;

授予所有权限

grant all privileges on *.* to zhangsan;

查看权限

查看当前用户的权限

SHOW GRANTS;
# 或
SHOW GRANTS FOR CURRENT_USER;
# 或
SHOW GRANTS FOR CURRENT_USER();

查看某用户的全局权限

SHOW GRANTS FOR 'user'@'主机地址' ;

收回权限

REVOKE 权限1,权限2,…权限n ON 数据库名称.表名称 FROM 用户名@用户地址;

举例

# 收回所有权限
REVOKE ALL PRIVILEGES ON *.* FROM zhangsan@'%';
# 单独收回权限
revoke delete on dbtest01.employees from zhangsan@'%';

用户必须重新登录才能生效。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值