数据库(DataBase)-数据库用户权限管理

8.权限管理

1.用户的权限

用户的权限:指的是一个数据库用户可以对数据进行操作的能力,最简单的例子是:能飞对表进行增删改查等操作。

调用的数据库:MySQL中的User表格。

本质:对MySQL.User进行增删改查。

(1)查看数据库中的用户数据

use mysql;

select * from user;

在这里插入图片描述

(2)创建新的用户:

-- 创建用户:create user 用户名 identified by '密码';
create user Edwin identified by '987654';
/*
注意:
必须拥有mysql数据库的全局CREATE USER权限,或拥有INSERT权限。
只能创建用户,不能赋予权限。
用户名,注意引号:如 'user_name'@'192.168.1.1'
密码也需引号,纯数字密码也要加引号
要在纯文本中指定密码,需忽略PASSWORD关键词。要把密码指定为由PASSWORD()函数返回的混编值,需包含关键字PASSWORD
*/

-- 修改密码:1.修改当前登录用户密码
set password = password('112233445566');

-- 修改密码:2.修改指定的用户密码
set password for Edwin = password('998877665544');

-- 删除用户
drop user Edwin;

在这里插入图片描述

(3)重命名和赋予权限:

-- 用户重命名:rename user 旧名 to 新名;
rename user Edwin to EdwinD;

-- 用户授权:grant + 权限类型 + on (作用的)库.表 to 用户名
-- 权限类型:all privileges-全部权限,除了给别的用户赋予权限,其他都能干。
grant all privileges on *.* to EdwinD;

-- 撤销权限:revoke 权限名 on (作用的)库.表 from 用户名
revoke all privileges on *.* from EdwinD;

在这里插入图片描述

(4)查看权限:

-- 查看权限:获得某个用户的权限赋予代码。
show grants for EdwinD;
-- GRANT ALL PRIVILEGES ON *.* TO 'EdwinD'@'%' IDENTIFIED BY PASSWORD '*24CC39FC2BFEE6A7FD5271776FAA33F7FF351258'

在这里插入图片描述

-- 查看root权限:获得某个用户的权限赋予代码。
show grants for root@localhost;
-- GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF' WITH GRANT OPTION
-- WITH GRANT OPTION是root最特殊的一项,

在这里插入图片描述

(5)权限列表(参考)

-- 权限列表
ALL [PRIVILEGES]    -- 设置除GRANT OPTION之外的所有简单权限
ALTER    -- 允许使用ALTER TABLE
ALTER ROUTINE    -- 更改或取消已存储的子程序
CREATE    -- 允许使用CREATE TABLE
CREATE ROUTINE    -- 创建已存储的子程序
CREATE TEMPORARY TABLES        -- 允许使用CREATE TEMPORARY TABLE
CREATE USER        -- 允许使用CREATE USER, DROP USER, RENAME USER和REVOKE ALL PRIVILEGES。
CREATE VIEW        -- 允许使用CREATE VIEW
DELETE    -- 允许使用DELETE
DROP    -- 允许使用DROP TABLE
EXECUTE        -- 允许用户运行已存储的子程序
FILE    -- 允许使用SELECT...INTO OUTFILE和LOAD DATA INFILE
INDEX     -- 允许使用CREATE INDEX和DROP INDEX
INSERT    -- 允许使用INSERT
LOCK TABLES        -- 允许对您拥有SELECT权限的表使用LOCK TABLES
PROCESS     -- 允许使用SHOW FULL PROCESSLIST
REFERENCES    -- 未被实施
RELOAD    -- 允许使用FLUSH
REPLICATION CLIENT    -- 允许用户询问从属服务器或主服务器的地址
REPLICATION SLAVE    -- 用于复制型从属服务器(从主服务器中读取二进制日志事件)
SELECT    -- 允许使用SELECT
SHOW DATABASES    -- 显示所有数据库
SHOW VIEW    -- 允许使用SHOW CREATE VIEW
SHUTDOWN    -- 允许使用mysqladmin shutdown
SUPER    -- 允许使用CHANGE MASTER, KILL, PURGE MASTER LOGS和SET GLOBAL语句,mysqladmin debug命令;允许您连接(一次),即使已达到max_connections。
UPDATE    -- 允许使用UPDATE
USAGE    -- “无权限”的同义词
GRANT OPTION    -- 允许授予权限


/* 表维护 */

-- 分析和存储表的关键字分布
ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE 表名 ...
-- 检查一个或多个表是否有错误
CHECK TABLE tbl_name [, tbl_name] ... [option] ...
option = {QUICK | FAST | MEDIUM | EXTENDED | CHANGED}
-- 整理数据文件的碎片
OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...

参考文献

《【狂神说Java】MySQL最新教程通俗易懂》
视频连接:https://www.bilibili.com/video/BV1NJ411J79W

《狂神说MySQL07:权限及如何设计数据库》
原文连接

2020.05.19

你可能感兴趣的:(数据库)