用戶和權限管理: 語法
grant權限on數據庫.數據表to'用戶'@'主機名';
例:給分配所有的權限
*.*to''@'%';
這個時候就擁有了所有權限了
權限列表
權限
說明
舉例
usage
連接(登陸)權限,建立一個用戶,就會自動授予其usage權限(默認授予)。
mysql>*.*to'root′@'''123';
該權限只能用于數據庫登陸,不能執行任何操作;且usage權限不能被回收,也即用戶并不能刪除用戶。
file
擁有file權限才可以執行..和…操作,但是不要把file,,super權限授予管理員以外的賬號,這樣存在嚴重的安全隱患。
mysql>*.*@;
mysql>'/home/mysql/pet.txt';
super
這個權限允許用戶終止任何查詢;修改全局變量的SET語句;使用,。
mysql>*.*@;
mysql>e'mysql-bin.′;
必須有的權限,才可以使用
mysql>.*to'root′@'';
mysql>*;
必須有的權限,才可以使用…..….
mysql>.*to'root′@'';
mysql>(name)('aa');
必須有的權限,才可以使用
mysql>=3.=='A';
必須有的權限,才可以使用….where….(刪除表中的記錄)
mysql>.*to'root′@'';
mysql>id=1;
alter
必須有alter的權限,才可以使用
mysql>(15);
必須具有的權限,才可以使用{alter|drop}{|}
mysql>yt.*to'root′@'‘;
mysql>p;
,(0.00sec)
必須有的權限,才可以使用
mysql>.*to'root′@'';
drop
必須有drop的權限,才可以刪除庫、表、索引、視圖等
mysql>;
mysql>;
mysql>;
mysql>;
必須具有的權限,才可以使用{|alter|drop}{|}
mysql>pyt.*to'root′@'';
當授予時,自動授予,權限給它的創建者:
s
(注意這里是,不是table)
必須有s的權限,才可以使用s.
mysql>.*to'root′@'';
[mysql@mydev~]$mysql--uroot-ppyt
mysql>tt1(idint);
必須有的權限,才可以使用
mysql>.*to'root′@'';
mysql>;
要使用,必須擁有mysql數據庫的全局權限,或擁有權限。
mysql>*.*to'root′@'';
或:mysql>*.*@;
通過只能看到你擁有的某些權限的數據庫,除非你擁有全局權限。
mysql>;
對于root@用戶來說,沒有對mysql數據庫的權限,所以以此身份登陸查詢時,無法看到mysql數據庫:
必須擁有權限,才能執行
mysql>;
index
必須擁有index權限,才能執行[|drop]index
mysql>.*@;
mysql>shop();
mysql>op;
執行存在的,
mysql>(0001,@a);
event
event的使用頻率較低建議使用root用戶進行創建和維護。
mysql>ike'';
要使event起作用,MySQL的常量r必須為on或者是1
必須擁有權限,才可以使用
mysql>.*@;
mysql>;
mysql>;
有了權限,用戶就可以將其它表的一個字段作為某一個表的外鍵約束。
必須擁有權限,才可以執行flush[|logs|]
mysql>.*@;
(HY000):ES
mysql>*.*to'root′@'';
,(0.00sec)
mysql>;
擁有此權限可以查詢、狀態。
mysql>nton*.*@;
或:mysql>*.*@;
mysql>;
擁有此權限可以查看從服務器,從主服務器讀取二進制日志。
mysql>eon*.*@;
mysql>;
(0.00sec)
mysql>;
關閉mysql權限
[mysql@mydev~]$
擁有,就可以將自己擁有的權限授予其他用戶(僅限于自己已經擁有的權限)
mysql>t.*@;
mysql>.*top2@;
通過這個權限,用戶可以執行和KILL命令。默認情況下,每個用戶都可以執行命令,但是只能查詢本用戶的進程。
mysql>;
所有權限。可以連帶授權
mysql>pyt.*@tion;
·管理權限(如super,,file等)不能夠指定某個數據庫,on后面必須跟*.*
·有人會問權限呢,其實權限就是+drop,這點需要注意
查看用戶授權信息
mysql>;
+-------------------------------------------------------------------------------------------------------+
|@%|
+-------------------------------------------------------------------------------------------------------+
|*.*@'%''*'|
+-------------------------------------------------------------------------------------------------------+
(0.00sec)
一般情況賦予的權限 用戶管理
mysql>;
一、查看
mysql>,user,;
二、創建
mysql>'xxxxx';//會將純文本密碼加密作為散列值存儲
三、修改
mysql>;//之后可以使用,之前需要使用更新user表
四、刪除
mysql>sha;//之前刪除用戶時必須先使用刪除用戶權限,然后刪除用戶,之后drop命令可以刪除用戶的同時刪除用戶的相關權限
五、更改密碼(如果找回root密碼必須用這種方式)
mysql>=('');
mysql>.=('xxxx')=’bzfys’;5.8以后需要修改的列為g列.=('xxxx')=’bzfys’
六、查看用戶權限
mysql>;
七、賦予權限
mysql>b.*;
回收權限
mysql>db.*;//如果權限不存在會報錯
上面的命令也可使用多個權限同時賦予和回收,權限之間使用逗號分隔
mysql>,,,.*;
如果想立即看到結果使用
;
命令更新
設置權限時必須給出一下信息
1,要授予的權限
2,被授予訪問權限的數據庫或表
3,用戶名
grant和可以在幾個層次上控制訪問權限
1,整個服務器,使用和
2,整個數據庫,使用.*
3,特點表,使用.table
4,特定的列
5,特定的存儲過程
user表中host列的值的意義
%匹配所有主機
不會被解析成IP地址,直接通過連接
127.0.0.1會通過TCP/IP協議連接,并且只能在本機訪問;
::1::1就是兼容支持ipv6的,表示同ipv4的127.0.0.1
grant普通數據用戶,查詢、插入、更新、刪除數據庫中所有表數據的權利。
.*@’%’
.*@’%’
.*@’%’
.*@’%’
或者,用一條MySQL命令來替代:
,,,.*@’%’
9>.grant數據庫開發人員grant 大數據平臺權限,創建表、索引、視圖、存儲過程、函數。。。等權限。
grant創建、修改、刪除MySQL數據表結構權限。
.*@’192.168.0.%’;
.*@’192.168.0.%’;
.*@’192.168.0.%’;
grant操作MySQL外鍵權限。
tdb.*@’192.168.0.%’;
grant操作MySQL臨時表權限。
.*@’192.168.0.%’;
grant操作MySQL索引權限。
.*@’192.168.0.%’;
grant操作MySQL視圖、查看視圖源代碼權限。
tdb.*@’192.168.0.%’;
b.*@’192.168.0.%’;
grant操作MySQL存儲過程、函數權限。
.*@’192.168.0.%’;--now,us
estdb.*@’192.168.0.%’;--now,
.*@’192.168.0.%’;
10>.grant普通DBA管理某個MySQL數據庫的權限。
@’’
其中,關鍵字“”可以省略。
11>.grant高級DBA管理MySQL中所有數據庫的權限。
*.*todba@’’
12>.權限,分別可以作用在多個層次上。
1.grant作用在整個MySQL服務器上:
*.*todba@;--dba可以查詢MySQL中所有數據庫中的表。
*.*todba@;--dba可以管理MySQL中的所有數據庫
2.grant作用在單個數據庫上:
.*todba@;--dba可以查詢中的表。
3.grant作用在單個數據表上:
,,,.@;
4.grant作用在表中的列上:
(id,se,rank).@;
5.grant作用在存儲過程、函數上:
.’dba’@’’
.’dba’@’’
注意:修改完權限以后一定要刷新服務,或者重啟服務grant 大數據平臺權限,刷新服務用:。
,,``.*TO''@'%';
創建存儲過程
,修改存儲過程
:執行存儲過程