MySQL-权限管理
wenking 7/11/2023 MySQL
# 权限分类
# 1. 数据操作权限
- SELECT: 允许用户查询数据。
- INSERT: 允许用户插入新数据。
- UPDATE: 允许用户更新现有数据。
- DELETE: 允许用户删除数据。
# 2. 数据定义权限
- CREATE: 允许用户创建新的数据库、表、索引、视图、触发器等。
- DROP: 允许用户删除数据库、表、索引、视图、触发器等。
- ALTER: 允许用户修改数据库、表的结构,例如添加或删除列、更改列的数据类型等。
# 3. 数据控制权限
- INDEX: 允许用户创建或删除索引。
- REFERENCES: 允许用户创建外键约束。
# 4. 系统管理权限
- GRANT OPTION: 允许用户授予或撤销其他用户的权限。
- SHUTDOWN: 允许用户关闭MySQL服务器。
- PROCESS: 允许用户查看服务器上正在运行的进程信息。
- FILE: 允许用户读取、写入和执行服务器上的文件。
- SUPER: 提供一些高级权限,如关闭线程、杀死连接、设置全局变量等。
# 5. 其他权限
- EXECUTE: 允许用户执行存储过程和函数。
- SHOW DATABASES: 允许用户查看所有数据库的名称。
- TRIGGER: 允许用户管理触发器。
- CREATE ROUTINE: 允许用户创建存储过程和函数。
- ALTER ROUTINE: 允许用户修改存储过程和函数。
- EVENT: 允许用户管理事件调度器。
# 授权命令
授权示例
GRANT privileges ON database.table TO 'username'@'hostname';
1
授权user用户所有权限
grant all privileges on *.* to user@"%";
1
授权自定义函数执行权限
grant execute on function select_all_subcolumn to 'root'@'%'
1
查询系统中有哪些用户
select host,user from mysql.user
1
创建用户,并授权所有权限
CREATE USER 'username'@'192.168.1.100' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'192.168.1.100';
1
2
3
2
3
查询、修改函数的definer
select db, name, type, definer from mysql.proc where db = "aicms_sa_20210425" and name = "select_all_parentcolumn";
update mysql.proc set definer = "root@localhost" where db = "aicms_sa_20210425" and name = "select_all_parentcolumn";
1
2
3
2
3