mysql使用参数指定用户_mysql-用户账号及权限管理
用戶賬號管理
添加用戶
使用create創建用戶
語法格式:
CREATE USER [ IDENTIFIED BY [ PASSWORD ] ‘password‘ ] [ ,用戶 [ IDENTIFIED BY [ PASSWORD ] ‘password‘ ]]
例:
1.CREATE USER ‘username‘@‘localhost‘ IDENTIFIED BY ‘passwd‘;
使用insert新建用戶
語法格式:
INSERT INTO mysql.user(Host, User, authentication_string, ssl_cipher, x509_issuer, x509_subject) VALUES (‘hostname‘, ‘username‘, PASSWORD(‘password‘), ‘‘, ‘‘, ‘‘);
例:
1.INSERT INTO mysql.user(Host,User,authentication_string,ssl_cipher,x509_issuer,x509_subject) VALUES (‘localhost‘,‘test‘,PASSWORD(‘passwd‘),‘‘,‘‘,‘‘);
2.FLUSH PRIVILEGES;
使用GRANT新建用戶
語法格式:
GRANT priv_type ON database.table TO user [IDENTIFIED BY [PASSWORD] ‘password‘]
priv_type 參數表示新用戶的權限;
database.table 參數表示新用戶的權限范圍,即只能在指定的數據庫和表上使用自己的權限;
user 參數指定新用戶的賬號,由用戶名和主機名構成;
IDENTIFIED BY 關鍵字用來設置密碼;
password 參數表示新用戶的密碼。
例:
1.GRANT SELECT ON *.* TO ‘test‘@localhost IDENTIFIED BY ‘passwd‘;
修改用戶
修改用戶名
語法格式:
RENAME USER TO
:系統中已經存在的 MySQL 用戶賬號。
:新的 MySQL 用戶賬號。
RENAME USER 語句用于對原有的 MySQL 用戶進行重命名。
若系統中舊賬戶不存在或者新賬戶已存在,該語句執行時會出現錯誤。
使用 RENAME USER 語句,必須擁有 mysql 數據庫的 UPDATE 權限或全局 CREATE USER 權限。
例:
RENAME USER ‘test1‘@‘localhost‘ TO ‘test02‘@‘localhost‘;
修改用戶密碼
使用set修改
語法格式:
SET PASSWORD FOR ‘username‘@‘hostname‘ = PASSWORD(‘newpasswd‘);
使用UPDATE修改
語法格式:
UPDATE mysql.user SET authentication_string = PASSWORD(‘newpasswd‘) WHERE User=‘username‘ AND Host=‘hostname‘;FLUSH PRIVILEGES;
例:
mysql>UPDATE mysql.user SET authentication_string = PASSWORD(‘newpasswd‘) WHERE User=‘test‘ AND Host=‘localhost‘;
mysql>FlUSH PRIVILEGES;
使用GRANT修改
語法格式:
GRANT USAGE ON *.* TO ‘user‘@‘hostname‘ IDENTIFIED BY ‘newpasswd‘;
例:
GRANT USAGE ON *.* TO ‘test‘@‘localhost‘ IDENTIFIED BY ‘newpasswd‘;
刪除用戶
使用DROP刪除用戶
語法格式:
DROP USER ‘username‘@‘host‘[,[email?protected]]...
注意:用戶的刪除不會影響他們之前所創建的表、索引或其他數據庫對象,MySQL不會記錄是誰創建了這些對象
例:
DROP USER ‘test1‘@‘localhost‘;
使用DELETE刪除用戶
語法格式:
DELETE FROM mysql.user WHERE Host=‘hostname‘ AND User=‘username‘;
例:
DELETE FROM mysql.user WHERE Host=‘localhost‘ AND User=‘test1‘;
查看用戶權限
使用SELECT查詢
語法格式:
SELETE * FROM ‘username‘@‘hostname‘;
注意:
1.新建用戶只有登錄權限,沒有任何其它權限,不能查詢user表
使用SHOW GRANTS FOR查詢
SHOW GRANTS FOR ‘username‘@‘host‘; #查看指定用戶的權限
SHOW GRANTS FOR CURRENT_USER; #查看當前用戶的權限
用戶權限管理
賦予權限
語法格式:
GRANT priv_type [(column_list)] ON database.table TO user [IDENTIFIED BY [PASSWORD] ‘password‘]
[, user[IDENTIFIED BY [PASSWORD] ‘password‘]] ...
[WITH with_option [with_option]...]
priv_type 參數表示權限類型;
columns_list 參數表示權限作用于哪些列上,省略該參數時,表示作用于整個表;
database.table 用于指定權限的級別;
user 參數表示用戶賬戶,由用戶名和主機名構成,格式是“‘username‘@‘hostname‘”;
IDENTIFIED BY 參數用來為用戶設置密碼;
password 參數是用戶的新密碼。
WITH 關鍵字后面帶有一個或多個 with_option 參數。這個參數有 5 個選項,詳細介紹如下:
GRANT OPTION:被授權的用戶可以將這些權限賦予給別的用戶;
MAX_QUERIES_PER_HOUR count:設置每個小時可以允許執行 count 次查詢;
MAX_UPDATES_PER_HOUR count:設置每個小時可以允許執行 count 次更新;
MAX_CONNECTIONS_PER_HOUR count:設置每小時可以建立 count 個連接;
MAX_USER_CONNECTIONS count:設置單個用戶可以同時具有的 count 個連接。
1.授予數據庫權限時,可以指定為以下值
SELECTSelect_priv表示授予用戶可以使用 SELECT 語句訪問特定數據庫中所有表和視圖的權限。
INSERTInsert_priv表示授予用戶可以使用 INSERT 語句向特定數據庫中所有表添加數據行的權限。
DELETEDelete_priv表示授予用戶可以使用 DELETE 語句刪除特定數據庫中所有表的數據行的權限。
UPDATEUpdate_priv表示授予用戶可以使用 UPDATE 語句更新特定數據庫中所有數據表的值的權限。
REFERENCESReferences_priv表示授予用戶可以創建指向特定的數據庫中的表外鍵的權限。
CREATECreate_priv表示授權用戶可以使用 CREATE TABLE 語句在特定數據庫中創建新表的權限。
ALTERAlter_priv 表示授予用戶可以使用 ALTER TABLE 語句修改特定數據庫中所有數據表的權限。
SHOW VIEWShow_view_priv表示授予用戶可以查看特定數據庫中已有視圖的視圖定義的權限。
CREATE ROUTINECreate_routine_priv表示授予用戶可以為特定的數據庫創建存儲過程和存儲函數的權限。
ALTER ROUTINEAlter_routine_priv表示授予用戶可以更新和刪除數據庫中已有的存儲過程和存儲函數的權限。
INDEXIndex_priv表示授予用戶可以在特定數據庫中的所有數據表上定義和刪除索引的權限。
DROPDrop_priv表示授予用戶可以刪除特定數據庫中所有表和視圖的權限。
CREATE TEMPORARY TABLESCreate_tmp_table_priv表示授予用戶可以在特定數據庫中創建臨時表的權限。
CREATE VIEWCreate_view_priv表示授予用戶可以在特定數據庫中創建新的視圖的權限。
EXECUTE ROUTINEExecute_priv表示授予用戶可以調用特定數據庫的存儲過程和存儲函數的權限。
LOCK TABLESLock_tables_priv表示授予用戶可以鎖定特定數據庫的已有數據表的權限。
ALL 或 ALL PRIVILEGES 或 SUPERSuper_priv表示以上所有權限/超級權限
2.授予表權限時,可以指定為以下值
SELECTSelect_priv授予用戶可以使用 SELECT 語句進行訪問特定表的權限
INSERTInsert_priv授予用戶可以使用 INSERT 語句向一個特定表中添加數據行的權限
DELETEDelete_priv授予用戶可以使用 DELETE 語句從一個特定表中刪除數據行的權限
DROPDrop_priv授予用戶可以刪除數據表的權限
UPDATEUpdate_priv授予用戶可以使用 UPDATE 語句更新特定數據表的權限
ALTERAlter_priv 授予用戶可以使用 ALTER TABLE 語句修改數據表的權限
REFERENCESReferences_priv授予用戶可以創建一個外鍵來參照特定數據表的權限
CREATECreate_priv授予用戶可以使用特定的名字創建一個數據表的權限
INDEXIndex_priv授予用戶可以在表上定義索引的權限
ALL 或 ALL PRIVILEGES 或 SUPERSuper_priv所有的權限名
例:
1. GRANT SELECT,INSERT ON *.* TO ‘test‘@‘localhost‘ IDENTIFIED BY ‘passwd‘ WITH GRANT OPTION;
回收權限
回收用戶的某些特定權限
語法格式:
REVOKE priv_type [(column_list)]... ON database.table FROM user [, user]...
priv_type 參數表示權限的類型;
column_list 參數表示權限作用于哪些列上,沒有該參數時作用于整個表上;
user 參數由用戶名和主機名構成,格式為“username‘@‘hostname‘”。
例:
REVOKE SELECT,DROP ON *.* FROM ‘test‘@‘localhost‘;
回收特定用戶的所有權限
語法格式:
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...
REVOKE 語法和 GRANT 語句的語法格式相似,但具有相反的效果
要使用 REVOKE 語句,必須擁有 MySQL 數據庫的全局 CREATE USER 權限或 UPDATE 權限
例:
REVOKE ALL PRIVILEGES,GRANT OPTION FROM ‘test‘@‘localhost‘;
原文:https://www.cnblogs.com/wanwz/p/12875454.html
總結
以上是生活随笔為你收集整理的mysql使用参数指定用户_mysql-用户账号及权限管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux双机热备软件 mysql_li
- 下一篇: python k线顶分型_【缠论】分型、