MySQL創建用戶與授權方法_Mysql

來源:腳本之家  責任編輯:小易  

慢慢看吧mysql中可以給你一個用戶授予如select,insert,update,delete等其中的一個或者多個權限,主要使用grant命令,用法格式為:grant 權限 on 數據庫對象 to 用戶一、grant 普通數據用戶,查詢、插入、更新、刪除 數據庫中所有表數據的權利。grant select on testdb.*to [email protected]’%’grant insert on testdb.*to [email protected]’%’grant update on testdb.*to [email protected]’%’grant delete on testdb.*to [email protected]’%’或者,用一條 mysql 命令來替代:grant select,insert,update,delete on testdb.*to [email protected]’%’二、grant 數據庫開發人員,創建表、索引、視圖、存儲過程、函數。等權限。grant 創建、修改、刪除 mysql 數據表結構權限。grant create on testdb.*to [email protected]’192.168.0.%’;grant alter on testdb.*to [email protected]’192.168.0.%’;grant drop on testdb.*to [email protected]’192.168.0.%’;grant 操作 mysql 外鍵權限。grant references on testdb.*to [email protected]’192.168.0.%’;grant 操作 mysql 臨時表權限。grant create temporary tables on testdb.*to [email protected]’192.168.0.%’;grant 操作 mysql 索引權限。grant index on testdb.*to [email protected]’192.168.0.%’;grant 操作 mysql 視圖、查看視圖源代碼 權限。grant create view on testdb.*to [email protected]’192.168.0.%’;grant show view on testdb.*to [email protected]’192.168.0.%’;grant 操作 mysql 存儲過程、函數 權限。grant create routine on testdb.*to [email protected]’192.168.0.%’;now,can show procedure statusgrant alter routine on testdb.*to [email protected]’192.168.0.%’;now,you can drop a proceduregrant execute on testdb.*to [email protected]’192.168.0.%’;三、grant 普通 dba 管理某個 mysql 數據庫的權限。grant all privileges on testdb to [email protected]’localhost’其中,關鍵字“privileges”可以省略。四、grant 高級 dba 管理 mysql 中所有數據庫的權限。grant all on*.*to [email protected]’localhost’五、mysql grant 權限,分別可以作用在多個層次上。1.grant 作用在整個 mysql 服務器上:grant select on*.*to [email protected];dba 可以查詢 mysql 中所有數據庫中的表。grant all on*.*to [email protected];dba 可以管理 mysql 中的所有數據庫2.grant 作用在單個數據庫上:grant select on testdb.*to [email protected];dba 可以查詢 testdb 中的表。3.grant 作用在單個數據表上:grant select,insert,update,delete on testdb.orders to [email protected];4.grant 作用在表中的列上:grant select(id,se,rank)on testdb.apache_log to [email protected];5.grant 作用在存儲過程、函數上:grant execute on procedure testdb.pr_add to’dba’@’localhost’grant execute on function testdb.fn_add to’dba’@’localhost’六、查看 mysql 用戶權限查看當前用戶(自己)權限:show grants;查看其他 mysql 用戶權限:show grants for [email protected];七、撤銷已經賦予給 mysql 用戶權限的權限。revoke 跟 grant 的語法差不多,只需要把關鍵字“to”換成“from”即可:grant all on*.*to [email protected];revoke all on*.*from [email protected];八、mysql grant、revoke 用戶權限注意事項1.grant,revoke 用戶權限后,該用戶只有重新連接 mysql 數據庫,權限才能生效。2.如果想讓授權的用戶,也可以將這些權限 grant 給其他用戶,需要選項“grant optiongrant select on testdb.*to [email protected] with grant option;這個特性一般用不到。實際中,數據庫權限最好由 dba 來統一管理。注意:修改完權限以后 一定要刷新服務,或者重啟服務www.anxorj.tw防采集請勿采集本網。

注:我的運行環境是widnows xp professional + MySQL5.0

一, 創建用戶:

mysql中可以給你一個用戶授予如select,insert,update,delete等其中的一個或者多個權限,主要使用grant命令

命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';

root用戶是系統默認的超級管理員,權限是最高的,當然可以管理任何用戶建立的數據庫了。你新建的ppamdin可以取得管理權限,但不是最高的權限,它只能管理被root授權管理的數據庫以及執行root授權

說明:username - 你將創建的用戶名, host - 指定該用戶在哪個主機上可以登陸,如果是本地用戶可用localhost, 如果想讓該用戶可以從任意遠程主機登陸,可以使用通配符%. password - 該用戶的登陸密碼,密碼可以為空,如果為空則該用戶可以不需要密碼登陸服務器.

創建用戶: 命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';說明:username-你將創建的用戶名,host- 指定該用戶在哪個主機上可以登陸,如果是本地用戶可用localhost,如果想讓該用戶可以從任意

例子: CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';

允許外網 IP 訪問 [plain]view plain copy 在CODE上查看代碼片派生到我的代碼片 create user 'test'@'%' identified by '123456';刷新授權 [sql]view plain copy 在CODE上查看代碼片派生到我的

CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456';

在mysql的客戶端工具或者mysql的數據庫管理工具中創建用戶并授權。eclipse中可以安裝數據庫插件,執行msyql的創建用戶的sql語句。

CREATE USER 'pig'@'%' IDENTIFIED BY '123456';

CREATE USER 'pig'@'%' IDENTIFIED BY '';

CREATE USER 'pig'@'%';

二,授權:

命令:GRANT privileges ON databasename.tablename TO 'username'@'host'

說明: privileges - 用戶的操作權限,如SELECT , INSERT , UPDATE 等(詳細列表見該文最后面).如果要授予所的權限則使用ALL.;databasename - 數據庫名,tablename-表名,如果要授予該用戶對所有數據庫和表的相應操作權限則可用*表示, 如*.*.

例子: GRANT SELECT, INSERT ON test.user TO 'pig'@'%';

GRANT ALL ON *.* TO 'pig'@'%';

注意:用以上命令授權的用戶不能給其它用戶授權,如果想讓該用戶可以授權,用以下命令:

GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

三.設置與更改用戶密碼

命令:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');如果是當前登陸用戶用SET PASSWORD = PASSWORD("newpassword");

例子: SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");

四.撤銷用戶權限

命令: REVOKE privilege ON databasename.tablename FROM 'username'@'host';

說明: privilege, databasename, tablename - 同授權部分.

例子: REVOKE SELECT ON *.* FROM 'pig'@'%';

注意: 假如你在給用戶'pig'@'%'授權的時候是這樣的(或類似的):GRANT SELECT ON test.user TO 'pig'@'%', 則在使用REVOKE SELECT ON *.* FROM 'pig'@'%';命令并不能撤銷該用戶對test數據庫中user表的SELECT 操作.相反,如果授權使用的是GRANT SELECT ON *.* TO 'pig'@'%';則REVOKE SELECT ON test.user FROM 'pig'@'%';命令也不能撤銷該用戶對test數據庫中user表的Select 權限.

具體信息可以用命令SHOW GRANTS FOR 'pig'@'%'; 查看.

五.刪除用戶

命令: DROP USER 'username'@'host';

附表:在MySQL中的操作權限

ALTERAllows use of ALTER TABLE.
ALTER ROUTINEAlters or drops stored routines.
CREATEAllows use of CREATE TABLE.
CREATE ROUTINECreates stored routines.
CREATE TEMPORARY TABLEAllows use of CREATE TEMPORARY TABLE.
CREATE USERAllows use of CREATE USER, DROP USER, RENAME USER, and REVOKE ALL PRIVILEGES.
CREATE VIEWAllows use of CREATE VIEW.
DELETEAllows use of DELETE.
DROPAllows use of DROP TABLE.
EXECUTEAllows the user to run stored routines.
FILEAllows use of SELECT... INTO OUTFILE and LOAD DATA INFILE.
INDEXAllows use of CREATE INDEX and DROP INDEX.
INSERTAllows use of INSERT.
LOCK TABLESAllows use of LOCK TABLES on tables for which the user also has SELECT privileges.
PROCESSAllows use of SHOW FULL PROCESSLIST.
RELOADAllows use of FLUSH.
REPLICATIONAllows the user to ask where slave or master
CLIENTservers are.
REPLICATION SLAVENeeded for replication slaves.
SELECTAllows use of SELECT.
SHOW DATABASESAllows use of SHOW DATABASES.
SHOW VIEWAllows use of SHOW CREATE VIEW.
SHUTDOWNAllows use of mysqladmin shutdown.
SUPERAllows use of CHANGE MASTER, KILL, PURGE MASTER LOGS, and SET GLOBAL SQL statements. Allows mysqladmin debug command. Allows one extra connection to be made if maximum connections are reached.
UPDATEAllows use of UPDATE.
USAGEAllows connection without any specific privileges.

一般在為MySql創建用戶時建議使用GRANT前臺命令,當然如果對我們開發者而言,方法還有很多種,比如使用INSERT命令,甚至是直接修改mysql user數據表,但仍然建議按照MySQL規范去授權賬戶。因為它太容易忘記,特別整理方便參考。1、登錄MySQL輸入mysql-u root和密碼即可登錄到Mysql。2、選擇數據庫語句如下:use mysql;3、在mysql的user表中增加連接用戶GRANT USAGE ON*.*TO 'username'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;其中:“username”替換為將要授權的用戶名,比如clientusr;“password”替換為clientusr設置的密碼;4、可訪問數據表授權創建好帳戶之后,就開始給上面的common user進行數據表授權,步驟3中增加的連接用戶默認權限都是“N”的,必須在db表中為該帳戶授權,允許其訪問專用數據庫,當然超級用戶就不說了。使用下面語句:GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON dbx.*TO 'username'@'localhost' IDENTIFIED BY 'password';本語句中的權限根據實際需要確定:dbx"替換為授權訪問的數據庫名,如果只給某張表授權:dbx.tablenameusername"是步驟2授權用戶名password"是步驟2授權用戶的設置密碼這樣就為該用戶授予了對某數據表的SELECT,INSERT,UPDATE,DELETE,CAREATE,DROP權限。5、生效授權,創建完畢FLUSH PRIVILEGES;備注:1、不要直接使用INSERT語句添加user記錄,使用INSERT可能出現:ERROR 1364(HY000):Field 'ssl_cipher' doesn't have a default value錯誤。不過早期的MYSQL版本筆者倒沒出現這個錯誤,因為天緣一直都是直接修改user表或直接使用INSERT語句完成,后來升級MYSQL到5.1的時候,發現可能會出現這個錯誤。2、上文3和4,也可使用一句話GRANT ALL ON tbx.*TO 'username' IDENTIFIED BY 'password',這句話會自動創建username并為之授權。更多授權權限可參考MYSQL官方網站內容來自www.anxorj.tw請勿采集。


  • 本文相關:
  • 通過shell腳本批量創建服務器上的mysql數據庫賬號
  • mysql創建數據庫,添加用戶,用戶授權實操方法
  • mysql創建本地用戶及賦予數據庫權限的方法示例
  • linux下mysql創建新的用戶的方法
  • mysql5.7創建用戶授權刪除用戶撤銷授權
  • mysql創建新用戶、增加賬戶的2種方法及使用實例
  • mysql創建用戶與授權及撤銷用戶權限方法
  • mysql 數據庫導入導出命令
  • mysql導入導出數據中文亂碼解決方法小結
  • mysql 文本文件的導入導出數據的方法
  • mysql數據庫導出與導入及常見錯誤解決
  • mysql數據庫創建賬號、授權、數據導出、導入操作示例
  • 配置mysql主從服務實現實例
  • mysql跨庫事務xa操作示例
  • mysql5.7.13 環境搭建教程(解壓縮版)
  • mysql5.6安裝步驟圖文詳解
  • windows系統mysql5.7.18安裝圖文教程
  • mysql如何處理varchar與nvarchar類型中的特殊字符
  • 在mysql字段中使用逗號分隔符的方法分享
  • mysql數據庫詳解(基于ubuntu 14.0.4 lts 64位)
  • 如何用命令行進入mysql具體操作步驟
  • mysql中用通用查詢日志找出查詢次數最多的語句的教程
  • 如何給MySql創建連接用戶并授權
  • MySQL如何授權一個自己的創建的用戶比如daitest創建新數據庫的權利?求命令
  • mysql怎么創建新用戶并授權
  • 如何創建新用戶和授予MySQL中的權限
  • 如何在MySQL中創建用戶以及授權
  • mysql中,我想用一個新用戶直接創建數據庫不行嗎?一定要用root用戶創建數據庫再授權這種方法嗎?
  • 如何通過命令行創建和設置一個MySQL用戶
  • 如何讓mysql新建的用戶只對自己創建的數據庫擁有權限
  • 怎么用Eclipse給mysql數據庫創建用戶并授權?
  • 網站上的管理用戶,普通用戶這些都是用MYSQL來創建并授權的嗎?
  • 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess數據庫文摘數據庫其它首頁mysql通過shell腳本批量創建服務器上的mysql數據庫賬號mysql創建數據庫,添加用戶,用戶授權實操方法mysql創建本地用戶及賦予數據庫權限的方法示例linux下mysql創建新的用戶的方法mysql5.7創建用戶授權刪除用戶撤銷授權mysql創建新用戶、增加賬戶的2種方法及使用實例mysql創建用戶與授權及撤銷用戶權限方法mysql 數據庫導入導出命令mysql導入導出數據中文亂碼解決方法小結mysql 文本文件的導入導出數據的方法mysql數據庫導出與導入及常見錯誤解決mysql數據庫創建賬號、授權、數據導出、導入操作示例配置mysql主從服務實現實例mysql跨庫事務xa操作示例mysql5.7.13 環境搭建教程(解壓縮版)mysql5.6安裝步驟圖文詳解windows系統mysql5.7.18安裝圖文教程mysql如何處理varchar與nvarchar類型中的特殊字符在mysql字段中使用逗號分隔符的方法分享mysql數據庫詳解(基于ubuntu 14.0.4 lts 64位)如何用命令行進入mysql具體操作步驟mysql中用通用查詢日志找出查詢次數最多的語句的教程mysql安裝圖解 mysql圖文安裝教程windows下mysql5.6版本安裝及配置can""t connect to mysql servermysql字符串截取函數substring的mysql創建用戶與授權方法mysql提示:the server quit withmysql日期數據類型、時間類型使用mysql——修改root密碼的4種方法mysql update語句的用法詳解mysql 的case when 語句使用說明mysql中insert into xxx on duplicate kemysql查詢中limit的大offset導致性能低下mysql中分頁優化的實例詳解mysql 數據庫跨操作系統的最快遷移方法mysql安裝時解決要輸入current root passmysql中find_in_set()和in區別簡析mysql獲取某個字段存在于哪個表的sql語句使用navicate連接阿里云服務器上的mysqlwin7下mysql6.x出現中文亂碼的完美解決方sqlserver 2005 自動備份數據庫的方法分享
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.anxorj.tw All Rights Reserved
    陕西快乐10分下载