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>

授权 user2forum 库所有权限,只允许从 192.168.1.10 登录,密码为qazwsx

1GRANT ALL PRIVILEGES ON forum.* TO 'user2'@'192.168.1.10' IDENTIFIED BY 'qazwsx';

授权 user2wpsell 库下的 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';