北京市中海建设有限公司网站,建网站买空间,中小企业网站建设与推广,wordpress教程书本目录 前言1. 授予权限2. 撤销权限3. 查询权限4. Demo 前言
公司内部的数据库权限一般针对不同人员有不同的权限分配#xff0c;而不都统一给一个root权限
1. 授予权限
授予用户权限的基本命令是GRANT
可以授予的权限种类很多#xff0c;涵盖从数据库和表级别到列和存储过… 目录 前言1. 授予权限2. 撤销权限3. 查询权限4. Demo 前言
公司内部的数据库权限一般针对不同人员有不同的权限分配而不都统一给一个root权限
1. 授予权限
授予用户权限的基本命令是GRANT
可以授予的权限种类很多涵盖从数据库和表级别到列和存储过程级别的各种操作
基本的语法如下
GRANT privileges ON database.table TO usernamehost;对应的参数如下
privileges要授予的权限列表可以是一个或多个权限用逗号分隔database数据库名table表名可以使用通配符*表示所有数据库或所有表usernamehost用户及其允许连接的主机
常见的权限如下
权限类型说明ALL PRIVILEGES授予用户所有权限SELECT允许用户执行SELECT查询INSERT允许用户插入数据UPDATE允许用户更新数据DELETE允许用户删除数据CREATE允许用户创建新数据库或表DROP允许用户删除数据库或表GRANT OPTION允许用户将自己拥有的权限授予其他用户RELOAD允许用户执行FLUSH操作刷新表、日志等SHUTDOWN允许用户关闭MySQL服务器PROCESS允许用户查看当前MySQL服务器的线程信息FILE允许用户读写服务器上的文件REFERENCES允许用户创建外键INDEX允许用户创建和删除索引ALTER允许用户修改表结构SHOW DATABASES允许用户执行SHOW DATABASES查看所有数据库SUPER允许用户执行超级用户操作如设置全局变量、停止复制等CREATE TEMPORARY TABLES允许用户创建临时表LOCK TABLES允许用户使用LOCK TABLES命令EXECUTE允许用户执行存储过程REPLICATION SLAVE允许用户作为复制从服务器连接REPLICATION CLIENT允许用户查询主从复制服务器信息CREATE VIEW允许用户创建视图SHOW VIEW允许用户执行SHOW CREATE VIEW查看视图定义CREATE ROUTINE允许用户创建存储过程和函数ALTER ROUTINE允许用户修改和删除存储过程和函数EVENT允许用户创建、修改和删除事件TRIGGER允许用户创建和删除触发器CREATE USER允许用户创建、删除和修改用户帐号ALTER USER允许用户修改已有用户的属性如密码
类似如下
# 授予多种权限
# 授予user1对mydatabase数据库中所有表的SELECT、INSERT和UPDATE权限
GRANT SELECT, INSERT, UPDATE ON mydatabase.* TO user1localhost;# 授予所有权限
# 授予user1对mydatabase数据库中所有表的所有权限
GRANT ALL PRIVILEGES ON mydatabase.* TO user1localhost;# 授予全局权限
# 授予user1全局CREATE和DROP权限
GRANT CREATE, DROP ON *.* TO user1localhost2. 撤销权限
撤销特定的权限或收回用户所有权限
基本的语法如下
REVOKE privileges ON database.table FROM usernamehost;privileges要收回的权限列表可以是一个或多个权限用逗号分隔database数据库名table表名可以使用通配符*表示所有数据库或所有表usernamehost用户及其允许连接的主机
收回特定的权限REVOKE SELECT, INSERT ON mydatabase.* FROM user1localhost;
收回所有的权限REVOKE SELECT, INSERT, UPDATE, DELETE ON mydatabase.* FROM user1localhost;
3. 查询权限
查询当前用户的权限show grants; 查询特定用户的权限SHOW GRANTS FOR rootlocalhost;
截图如下所示 查看MySQL中名为root的用户的详细信息和权限配置 mysql.user表包含所有MySQL用户的详细信息包括用户名、主机、权限以及其他安全相关设置
SELECT * FROM mysql.user WHERE userroot;如图所示 对于该表的基本含义如下
属性描述Host从哪些主机连接到MySQL服务器例如localhost、%表示任意主机等User用户名Password加密后的用户密码从MySQL 5.7.6版本开始改为authentication_stringSelect_priv、Insert_priv、Update_priv、Delete_priv 等这些列存储用户在全局级别上的权限值为Y有权限或N无权限Create_priv、Drop_priv是否有创建和删除数据库、表等的权限Grant_priv是否有授予权限的能力References_priv、Index_priv、Alter_priv其他特定操作权限Create_user_priv是否有创建新用户的权限ssl_type、ssl_cipher、x509_issuer、x509_subject与SSL/TLS连接相关的信息max_questions、max_updates、max_connections、max_user_connections限制用户在一定时间内的最大查询数、更新数、连接数等
4. Demo
结合Demo深入理解
-- 1. 创建用户
CREATE USER user1localhost IDENTIFIED BY password123;-- 2. 授予用户对mydatabase数据库所有表的所有权限
GRANT ALL PRIVILEGES ON mydatabase.* TO user1localhost;-- 3. 查看用户权限
SHOW GRANTS FOR user1localhost;-- 4. 收回用户对mydatabase数据库所有表的SELECT和INSERT权限
REVOKE SELECT, INSERT ON mydatabase.* FROM user1localhost;-- 5. 查看用户权限确认SELECT和INSERT权限已收回
SHOW GRANTS FOR user1localhost;查看用户权限 再次查看用户权限 对于用户的基本操作
先科普基本的用户创建还有删除命令
创建用户CREATE USER usernamehost IDENTIFIED BY password; 删除用户DROP USER ‘username’‘host’;
如果更新用户的密码推荐阅读修改sql密码涵盖多个版本
-- 1. 创建用户
CREATE USER user1localhost IDENTIFIED BY password123;-- 2. 更新用户密码方法1使用 ALTER USER
ALTER USER user1localhost IDENTIFIED BY new_password123;-- 3. 更新用户密码方法2使用 SET PASSWORD
SET PASSWORD FOR user1localhost PASSWORD(new_password123);-- 4. 删除用户
DROP USER user1localhost;截图如下