DCL(數(shù)據(jù)控制語(yǔ)言,用來(lái)創(chuàng)建數(shù)據(jù)庫(kù)用戶(hù)叨橱、控制數(shù)據(jù)庫(kù)的控制權(quán)限)
管理用戶(hù)
查詢(xún)用戶(hù):
USE mysql;
SELECT * FROM user;
創(chuàng)建用戶(hù):
CREATE USER '用戶(hù)名'@'主機(jī)名' IDENTIFIED BY '密碼';
修改用戶(hù)密碼:
ALTER USER '用戶(hù)名'@'主機(jī)名' IDENTIFIED WITH mysql_native_password BY '新密碼';
刪除用戶(hù):
DROP USER '用戶(hù)名'@'主機(jī)名';
案例:
-- 創(chuàng)建用戶(hù)test,只能在當(dāng)前主機(jī)localhost訪問(wèn),密碼123456
create user 'test'@'localhost' identified by '123456';
-- 創(chuàng)建用戶(hù)test,能在任意主機(jī)訪問(wèn)該數(shù)據(jù)庫(kù),密碼123456
create user 'test'@'%' identified by '123456';
create user 'test' identified by '123456';
-- 修改用戶(hù)test的訪問(wèn)密碼為1234
alter user 'test'@'localhost' identified with mysql_native_password by '1234';
-- 刪除test@localhost用戶(hù)
drop user 'test'@'localhost';
在MySQL中需要通過(guò)用戶(hù)名@主機(jī)名的方式真友,來(lái)唯一標(biāo)識(shí)一個(gè)用戶(hù)
主機(jī)名可以使用 % 通配
這類(lèi)SQL開(kāi)發(fā)人員操作的比較少,主要是DBA(Database Administrator數(shù)據(jù)庫(kù)管理員)使用紧帕。
權(quán)限控制
常用權(quán)限:
權(quán)限說(shuō)明
ALL, ALL PRIVILEGES所有權(quán)限
SELECT查詢(xún)數(shù)據(jù)
INSERT插入數(shù)據(jù)
UPDATE修改數(shù)據(jù)
DELETE刪除數(shù)據(jù)
ALTER修改表
DROP刪除數(shù)據(jù)庫(kù)/表/視圖
CREATE創(chuàng)建數(shù)據(jù)庫(kù)/表
更多權(quán)限請(qǐng)看官方文檔
查詢(xún)權(quán)限:
SHOW GRANTS FOR '用戶(hù)名'@'主機(jī)名';
授予權(quán)限:
GRANT 權(quán)限列表 ON 數(shù)據(jù)庫(kù)名.表名 TO '用戶(hù)名'@'主機(jī)名';
撤銷(xiāo)權(quán)限:
REVOKE 權(quán)限列表 ON 數(shù)據(jù)庫(kù)名.表名 FROM '用戶(hù)名'@'主機(jī)名';
案例:
--查詢(xún)'heima'@'%'用戶(hù)的權(quán)限
show grants for 'heima'@'%';
--授予'heima'@'%'用戶(hù)的itcast數(shù)據(jù)表所有表的所有表的操作權(quán)限
grant all on itcast.* to 'heima'@'%';
撤銷(xiāo)'heima'@'%'用戶(hù)的itcast數(shù)據(jù)庫(kù)的所有權(quán)限
revoke all on itcast.* from 'heima'@'%';
多個(gè)權(quán)限用逗號(hào)分隔
授權(quán)時(shí)盔然,數(shù)據(jù)庫(kù)名和表名可以用 * 進(jìn)行通配,代表所有