SQL自学,mysql从入门到精通 --- 第 12天,用户、权限

创建用户

语法格式
创建一个名为'username'的用户,并将其密码设置为'password'。可以将'localhost'替换为允许用户访问的主机名或IP地址。
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

如果要为用户授予特定权限,例如访问特定数据库或执行特定操作
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';

如果您希望用户具有全局权限,例如访问所有数据库和执行任何操作
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;

刷新权限以使更改生效
FLUSH PRIVILEGES;
-- 创建一个用户mrloam,密码是123,'%'表示该用户可以从任何主机连接到数据库服务器。
root@mysqldb 14:46:  [(none)]> CREATE USER 'mrloam'@'%' IDENTIFIED BY '123';
Query OK, 0 rows affected (0.12 sec)

权限

GRANT 权限列表  ON  库名  TO  用户名@"客户端地址"  IDENTIFIED BY "密码" [ WITH GRANT OPTION ];

权限列表:
		SELECT	允许用户从表中检索数据
		INSERT  允许用户向表中插入数据
		UPDATE	允许用户更新表中的数据
		CREATE	允许用户创建数据库和表
		DELETE  允许用户从表中删除数据
		DROP	允许用户删除数据库和表
		RELOAD	允许用户重新加载权限表
		GRANT	允许用户授予其他用户权限
        INDEX	允许用户在表中创建索引。
        ALTER 	允许用户修改表结构。
        SELECT, INSERT, DELETE,DROP, UPDATE, CREATE, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE
库名的表示方式:
		*.*
		database.*
		database.table
客户端地址的表示方式
		% 
		192.168.1.%
		192.168.1.8
		localhost
WITH GRANT OPTION :有授权权限 ,可选项。可以让该用户将该权限传递给其他用户。


权限撤销
REVOKE  权限列表  ON  库名   FROM  用户@"客户端地址" ;
-- 授权mrloam用户能通过任意主机连接访问 d1库下的所有表,并拥有所有的权限。
root@mysqldb 14:53:  [(none)]> GRANT ALL PRIVILEGES ON d1.* TO 'mrloam'@'%';
Query OK, 0 rows affected (0.00 sec)


-- 创建一个用户 test ,并授予对d1库下的表有查询、写入、修改,删除的权限。
root@mysqldb 14:59:  [(none)]> CREATE USER 'test'@'%' IDENTIFIED BY '123';
Query OK, 0 rows affected (0.00 sec)

root@mysqldb 15:01:  [(none)]> GRANT SELECT, INSERT, UPDATE, DELETE ON d1.* TO 'test'@'%';
Query OK, 0 rows affected (0.00 sec)

--
-- 注意
-- 授予有创建表和库的权限,“%”符号表示对所有非本地主机授权,不包括localhost。
-- 如果需要授权给本机和非本地主机授权,需要授予'localhost'的权限,然后授予'%'的权限。
root@mysqldb 15:15:  [(none)]> GRANT CREATE ON d1.* TO 'test'@'localhost';
Query OK, 0 rows affected, 2 warnings (0.01 sec)
root@mysqldb 15:03:  [(none)]> GRANT CREATE ON d1.* TO 'test'@'%';
Query OK, 0 rows affected (0.00 sec)

-- 查看权限
root@mysqldb 15:15:  [(none)]> SHOW GRANTS FOR 'test'@'%';
+----------------------------------------------------------------------+
| Grants for test@%                                                    |
+----------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'test'@'%'                                     |
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE ON `d1`.* TO 'test'@'%' |
+----------------------------------------------------------------------+
2 rows in set (0.00 sec)


root@mysqldb 15:21:  [(none)]> SHOW GRANTS FOR 'test'@'%';
+----------------------------------------------------------------------+
| Grants for test@%                                                    |
+----------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'test'@'%'                                     |
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE ON `d1`.* TO 'test'@'%' |
+----------------------------------------------------------------------+
2 rows in set (0.00 sec)


-- 移除权限
root@mysqldb 15:57:  [(none)]> REVOKE SELECT, INSERT, UPDATE, DELETE, CREATE ON d1.* FROM 'test'@'%';
Query OK, 0 rows affected (0.00 sec)

root@mysqldb 15:59:  [(none)]> REVOKE SELECT, INSERT, UPDATE, DELETE, CREATE ON d1.* FROM 'test'@'localhost';
Query OK, 0 rows affected, 1 warning (0.00 sec)

-- 删除USAGE权限后,该用户将无法登录。USAGE权限表示只允许用户登录到数据库,不能执行任何其他操作。
root@mysqldb 16:04:  [(none)]> REVOKE USAGE ON *.* FROM 'test'@'localhost';
Query OK, 0 rows affected, 1 warning (0.00 sec)

root@mysqldb 16:05:  [(none)]> REVOKE USAGE ON *.* FROM 'test'@'%';
Query OK, 0 rows affected (0.00 sec)


-- 删除用户
root@mysqldb 16:05:  [(none)]> DROP USER 'test'@'%';
Query OK, 0 rows affected (0.00 sec)

root@mysqldb 16:08:  [(none)]> DROP USER 'test'@'localhost';
Query OK, 0 rows affected (0.00 sec)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.L-OAM

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值