mariadb权限配置
简介
在默认情况下,必须授权于用户权限,用户才可以连接,例如:授权 tom 用户,可以从 192.168.1.10 来连接
权限方面,则可以配置用户,如创建表,修改表结构,删除表,创建索引、视图,等等
以下是命令行相关的配置,若使用管理工具,则管理工具可以GUI方面配置
可以配置权限如下所示:
| 数据 | 表结构 | 管理 |
|---|---|---|
| SELECT | CREATE | GRANT |
| INSERT | ALTER | SUPER |
| UPDATE | INDEX | PROCESS |
| DELETE | DROP | RELOAD |
| FILE | CREATE TEMPORARY TABLES | SHUTDOWN |
| . | SHOW VIEW | SHOW DATABASES |
| . | CREATE ROUTINE | LOCK TABLES |
| . | EXECUTE | REFERENCES |
| . | CREATE VIEW | REPLICATION CLIENT |
| . | EVENT | REPLICATION SLAVE |
| . | TRIGGER | CREATE USER |
可以先创建用户,然后再授权,也可以在授权的时候直接创建,都可以,一个是两条指令,一个是一条 以下实例是直接授权并创建
使用 GRANT 授权, REVOKE 撤销授权
查看当前连接的用户权限
1mysql> SHOW GRANTS\G;
2*************************** 1. row ***************************
3Grants for root@localhost: GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*C6F63C5B0F14196C90D143A46D2046B350D612B3' WITH GRANT OPTION
4*************************** 2. row ***************************
5Grants for root@localhost: GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
62 rows in set (0.00 sec)
7
8ERROR:
9No query specified
创建 user1 用户,并授予所有库所有表所有权限,允许从任意地点登录,并设置密码为 123456
1mysql> GRANT ALL PRIVILEGES ON *.* TO 'user1'@'%' IDENTIFIED BY '1213456';
2 Query OK, 0 rows affected (0.00 sec)
3
4mysql>
授权 user2 对 forum 库所有权限,只允许从 192.168.1.10 登录,密码为qazwsx
1GRANT ALL PRIVILEGES ON forum.* TO 'user2'@'192.168.1.10' IDENTIFIED BY 'qazwsx';
授权 user2 对 wpsell 库下的 order 表只能查询数据,并且只允许从 192.168.x.x 网段登录,密码为qazwsx
1GRANT ALL SELECT ON wpsell.order TO 'user2'@'192.168.%' IDENTIFIED BY 'qazwsx';
查看当前用户连接的用户权限
1SHOW GRANTS;
查看指定用户权限
1SHOW GRANTS FOR 'user2'@'192.168.%';
撤销相应用户权限
1REVOKE SELECT, INSERT,UPDATE,DELETE ON forum.* FROM 'sunny'@'192.168.1.110';
撤销相应用户的所有权限
1REVOKE ALL PRIVILEGES ON forum.* FROM 'sunny'@'192.168.1.110';
REVOKE 回收权限,并不会删除账号,删除账号使用
DROP USER指令
1DROP USER 'sunny'@'localhost';
修改用户密码
修改当前用户的密码,也就是自己的密码
1SET PASSWORD=PASSWORD('your new password');
修改指定用户的密码
1SET PASSWORD FOR 'sunny'@'localhost'=PASSWORD('New password');
也可以使用 SQL 直接修改表来修改密码
1USE mysql;
2UPDATE user SET password=PASSWORD('Newpassword), authenication_string=PASSWORD('Newpassword') WHERE user='sunny';