mysql -p Mariadb 的賬戶管理操作 CREATE USER:創(chuàng)建一個新賬戶并為其設置一個口令(可選操作): CREATE USER account [IDENTIFIED BY ‘password’]..."/>
溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MariaDB用戶管理

發(fā)布時間:2020-08-14 17:22:45 來源:ITPUB博客 閱讀:143 作者:stephenjwq 欄目:MySQL數(shù)據(jù)庫

root>mysql -p
Mariadb 的賬戶管理操作

CREATE USER:創(chuàng)建一個新賬戶并為其設置一個口令(可選操作):
CREATE USER account [IDENTIFIED BY ‘password’];
這條語句只是創(chuàng)建帳戶,未對帳戶進行任何權限分配,權限分配由 GRANT 語句完成。
示例:
 

 MariaDB [(none)]> CREATE USER angel IDENTIFIED BY ' angel ';
DROP USER:刪除一個帳戶及與之相關的全部權限:
DROP USER account;
該語句并未刪除指定用戶可訪問到的任何數(shù)據(jù)庫及相關的數(shù)據(jù)對象。
示例:
 

 MariaDB [(none)]> DROP USER angel ;
RENAME USER:改變給定賬戶的名稱。
RENAME USER from_account TO to_account
示例:
 

 MariaDB [(none)]> RENAME USER ' angel .t1'@'127.0.0.1' TO ' angel.t1 @'%';
CREATE USER 等賬戶管理語句中的賬戶由一個用戶名和一個主機名組成,其格式為‘user_name’@’host_name’。

主機部分是指客戶從哪些主機去連接服務器。如若限制某個用戶從指定的主機連接 MariaDB 服務:

MariaDB [(none)]> CREATE USER ' angel '@'localhost' IDENTIFIED BY ' angel ';
MariaDB [(none)]> CREATE USER ' angel '@'1 0.1.1.1 ' IDENTIFIED BY ' angel ';
第一條語句,創(chuàng)建一個名為 angel 的用戶,并限制其只可從本機進行連接操作;第二條一句,創(chuàng)建一個名為 angel 的用戶,并限制其只可從 ip 10.1.1.1 的客戶機上連接服務。雖然用戶名相同,實際上,他們并不是同一個賬戶,其對應的權限也可能不盡相同。

當然很多情況下并不需要嚴格要求用戶只能從一臺主機連接服務器。這個時候就可以用上通配符:

MariaDB [(none)]> CREATE USER ' angel '@' 10.1.1.1 .%' IDENTIFIED BY ' angel ';
MariaDB [(none)]> CREATE USER ' angel '@'%. angel web.cn' IDENTIFIED BY ' angel ';
MariaDB [(none)]> CREATE USER ' angel '@'%' IDENTIFIED BY ' angel ';
SQL 中 LIKE 的通配符 % 及 -,在此都可使用。如若使用 “%” 或 “-” 本身,則需使用 “\” 對其轉義。

上面第一條語句創(chuàng)建一個名為 angel 的用戶,并允許其在 10.1.1.1.* ip 段下的所有主機連接服務器;第二條語句創(chuàng)建一個名為 angel 的用戶,并允許其能夠從 angel web.cn 域中的任意一臺主機連接服務器;第三條語句創(chuàng)建了一個名為 angel 的用戶,并允許其可從任意一臺主機來連接服務器。(第三種方式最為方便,但對系統(tǒng)最不安全。)

MariaDB 對賬戶授權

對賬戶授權需要使用GRANT語句,下面是 GRANT 語句的語法:

GRANT privileges (columns) ON what To account [IDENTIFIED BY ‘password’][REQUIRE encryption requirements] [WITH grant or resource management options];
GRANT 語句里,如果用戶存在,GRANT 語句則將改變它的權限;如果不存在 GRANT 語句則創(chuàng)建它,再將給定的權限分配給它。

下面是 GRANT 語句最為常用的幾個語法元素。

privileges,授權賬戶的權限。
columns,權限將作用的數(shù)據(jù)列。如若需要列舉多個數(shù)據(jù)列,則用逗號分隔。
what,權限的級別。
account,被授權的賬戶。account 的格式為 ‘user_name’@’host_name’。
password,賬戶的口令。類似于 CREATE USER 中的 IDENTIED BY。
確定賬戶的權限

可以授予用戶的權限由很多種。下面3張表即為權限的匯總。

數(shù)據(jù)庫管理權限

權限名 權限所允許的操作
CREATE USER 使用高級賬戶管理語句
FILE 讀、寫 MariaDB 服務器主機上的文件
GRANT OPTION 把賬戶權限授予其他賬戶
PROCESS 查看在運行的線程的信息
RELOAD 重新加載權限數(shù)據(jù)或更新日志及緩存
REPLICATION CLIENT 查詢主/從服務器的運行地點
REPLICATION SLAVE 以復制的從服務器運行
SHOW DATBASES 用 SHOW DATABASES 語句查看全部數(shù)據(jù)庫名稱
SHUTDOWN 關閉服務器
SUPER 用 KILL 命令終止線程以及進行其他超級用戶操作
 

數(shù)據(jù)庫對象操作權限

ALTER 更改數(shù)據(jù)表或索引的定義
ALTER ROUTINE 更改或刪除存儲函數(shù)或存儲過程
CREATE 創(chuàng)建數(shù)據(jù)庫或數(shù)據(jù)表
CRATE ROUTINE 創(chuàng)建存儲函數(shù)或存儲過程
CREATE TEMPORARY TABLE 用 TEMPORARY 關鍵字創(chuàng)建臨時表
CREATE VIEW 創(chuàng)建視圖
DELETE 刪除數(shù)據(jù)庫中現(xiàn)有的數(shù)據(jù)行
DROP 刪除數(shù)據(jù)庫、數(shù)據(jù)表或其他對象
EVENT 為時間調(diào)度程序創(chuàng)建、刪除或修改各種事件
EXECUTE 執(zhí)行存儲函數(shù)或存儲過程
INDEX 創(chuàng)建或刪除索引
INSERT 往數(shù)據(jù)表中插入新數(shù)據(jù)行
LOCK TABLE 用 LOCK TABLE 語句明確地鎖定數(shù)據(jù)表
REFERENCE 未使用(保留字)
SELECT 檢索數(shù)據(jù)表里的數(shù)據(jù)行
SHOW VIEW 查看視圖的定義
TRGGER 創(chuàng)建或刪除觸發(fā)器
UPDATE 修改數(shù)據(jù)行
 

其他權限

ALL [PRIVILEGES] 所有操作權限(但不包含 GRANT)
USAGE 一個特殊的“無權限”權限
數(shù)據(jù)庫管理權限控制著服務器的運行情況,所以很少授權與普通用戶。數(shù)據(jù)庫對象操作權限控制著對服務器數(shù)據(jù)訪問。

授予用戶權限

要想把權限授予其他用戶,首先發(fā)出授權的用戶必須具備該權限,而且必須具備 GRANT OPTION 權限。

MariaDB 允許在數(shù)據(jù)庫系統(tǒng)全局、數(shù)據(jù)庫、數(shù)據(jù)表、數(shù)據(jù)列等多種級別上進行授權。權限級別由 ON 子句控制。

執(zhí)行下面的語句:

MariaDB [(none)]> GRANT ALL ON test.* TO 'angel'@'localhost' WITH GRANT OPTION;
上面語句將數(shù)據(jù)庫test及其里面所有對象的所有權限授權于賬戶 ‘yangfan’@’localhost’。

MariaDB [(none)]> SHOW GRANTS FOR 'yangfan'@'localhost';
+----------------------------------------------------------------------------------------------------------------+
| Grants for angel @localhost                                                                                   |
+----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'angel'@'localhost' IDENTIFIED BY PASSWORD '*F6131BD316F9043F5FE0E5B95F5713D6F86A157F' |
| GRANT ALL PRIVILEGES ON `test`.* TO 'angel'@'localhost' WITH GRANT OPTION                                    |
+----------------------------------------------------------------------------------------------------------------+
執(zhí)行以下語句:

MariaDB [(none)]> GRANT SELECT,INSERt,UPDATE ON test.* TO 'angel'@'127.0.0.1';
上面語句將賬戶 ‘yangfan’@’127.0.0.1’ 的權限更改為,只有對數(shù)據(jù)庫 test 及其里面所有對象進行 SELECT、INSERT 和 UPDATE 操作的權限。

MariaDB [(none)]> SHOW GRANTS FOR 'yangfan'@'127.0.0.1';
+----------------------------------------------------------------------------------------------------------------+
| Grants for angel@127.0.0.1                                                                                   |
+----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'yangfan'@'127.0.0.1' IDENTIFIED BY PASSWORD '*F6131BD316F9043F5FE0E5B95F5713D6F86A157F' |
| GRANT SELECT, INSERT, UPDATE ON `test`.* TO 'angel'@'127.0.0.1'                                              |
+----------------------------------------------------------------------------------------------------------------+
 撤銷用戶權限

撤銷用戶授權用 REVOKE 語句,下面是 REVOKE 語句的語法:

REVOKE preivileges [ columns ] ON what FROM account;
之前我們將全部權限授予賬戶 ‘yangfan’@’localhost’, 現(xiàn)在我們對該賬戶進行權限的刪除:

MariaDB [(none)]> REVOKE ALL ON test.* FROM 'yangfan'@'localhost';
這樣賬戶 ‘yangfan’@’localhost’ 對數(shù)據(jù)庫 test 的權限便被全部刪除了。

MariaDB [(none)]> SHOW GRANTS FOR 'yangfan'@'localhost';
+----------------------------------------------------------------------------------------------------------------+
| Grants for angel@localhost                                                                                   |
+----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'angel'@'localhost' IDENTIFIED BY PASSWORD '*F6131BD316F9043F5FE0E5B95F5713D6F86A157F' |
| GRANT USAGE ON `test`.* TO 'angel'@'localhost' WITH GRANT OPTION                                             |
+----------------------------------------------------------------------------------------------------------------+
注意:USAGE 便是上文提到的“無權限”的權限。

我們再刪除賬戶 ‘yangfan’@’127.0.0.1’ 的 INSERT 和 UPDATE 的權限:

MariaDB [(none)]> REVOKE INSERT, UPDATE ON test.* FROM 'yangfan'@'127.0.0.1';
查看結果:

MariaDB [(none)]> SHOW GRANTS FOR 'yangfan'@'127.0.0.1';
+----------------------------------------------------------------------------------------------------------------+
| Grants for angel@127.0.0.1                                                                                   |
+----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'angel'@'127.0.0.1' IDENTIFIED BY PASSWORD '*F6131BD316F9043F5FE0E5B95F5713D6F86A157F' |
| GRANT SELECT ON `test`.* TO 'angel'@'127.0.0.1'                                                              |
+----------------------------------------------------------------------------------------------------------------+


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI