Mysql用戶創(chuàng)建以及權(quán)限賦予操作的實現(xiàn)
mysql創(chuàng)建用戶, 并配置一個庫的所有權(quán)限
在MySQL中,創(chuàng)建用戶并為其授予某個庫的所有權(quán)限,可以按照以下步驟操作:
1.登錄MySQL服務(wù)器。
mysql -u root -p
2.創(chuàng)建新用戶。
CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'user_password';
其中,new_user是新用戶的名稱,localhost是該用戶的登錄主機(jī),user_password是該用戶的密碼。
其中: MySQL中的"localhost"和"%"都是用來指定MySQL允許訪問服務(wù)器的主機(jī)名。但是,它們之間存在一些重要的區(qū)別:
- “localhost"只允許本地連接,而”%"允許所有IP地址都可以連接到服務(wù)器。
- 在安全性方面,“localhost"比”%“更安全,因為它只允許本地用戶連接到MySQL服務(wù)器,而”%"可能會允許外部用戶連接,從而增加了安全風(fēng)險。
- “localhost"是默認(rèn)的主機(jī)名,所以通常不需要指定,而”%"需要明確指定才能允許所有主機(jī)的連接。
綜上所述,“localhost"和”%“都有各自的優(yōu)點和缺點,具體使用應(yīng)根據(jù)具體情況和需要進(jìn)行選擇。如果只允許本地訪問,建議使用"localhost”,如果需要允許來自所有主機(jī)的訪問,則應(yīng)該使用"%"。
3.授予該用戶在數(shù)據(jù)庫中的所有權(quán)限。
GRANT ALL PRIVILEGES ON database_name.* TO 'new_user'@'localhost'; FLUSH PRIVILEGES;
在這個語句中,ALL PRIVILEGES授權(quán)了該用戶在指定數(shù)據(jù)庫中進(jìn)行所有操作的權(quán)限。database_name.*授權(quán)該用戶對指定數(shù)據(jù)庫的所有表和視圖都具有完全的權(quán)限。FLUSH PRIVILEGES命令用于刷新權(quán)限,以確保MySQL的權(quán)限系統(tǒng)已更新。
現(xiàn)在,新用戶已被創(chuàng)建并被授權(quán)對指定數(shù)據(jù)庫的所有表進(jìn)行所有操作。當(dāng)然,如果需要的話,可以調(diào)整授予的具體權(quán)限范圍。
3.1 權(quán)限的分類以及怎么給用戶賦予不同權(quán)限
MySQL有許多種權(quán)限,包括全局權(quán)限、數(shù)據(jù)庫級別權(quán)限、表級別權(quán)限、列級別權(quán)限等。在MySQL中,可以通過授權(quán)命令(grant)來給用戶不同的權(quán)限。
授權(quán)命令的語法如下:
GRANT privileges ON object TO 'user'@'localhost' [IDENTIFIED BY [PASSWORD] 'password']
其中,privileges表示授權(quán)給用戶的權(quán)限,object表示將權(quán)限授予的對象(比如database_name.*),user表示被授權(quán)的用戶,IDENTIFIED BY 'password’表示設(shè)置用戶密碼(這一步可以省略)。
MySQL中常見的權(quán)限包括:
- ALL PRIVILEGES:擁有所有權(quán)限
- ALTER:修改已經(jīng)存在的表結(jié)構(gòu),但不能修改表名稱和刪除表
- CREATE:創(chuàng)建新的數(shù)據(jù)庫和表
- DELETE:刪除表中的數(shù)據(jù)
- DROP:刪除已經(jīng)存在的數(shù)據(jù)庫和表
- INSERT:插入新數(shù)據(jù)到表中
- SELECT:從表中選取數(shù)據(jù)
- UPDATE:更新表中的數(shù)據(jù)
例如,通過以下命令給用戶’username’授予訪問’database_name’庫中所有表的SELECT和INSERT權(quán)限:
GRANT SELECT, INSERT ON database_name.* TO 'username'@'localhost';
4.顯示mysql所有用戶以及權(quán)限
在MySQL中,可以使用以下查詢語句來查看所有用戶及其權(quán)限:
SELECT user, host, authentication_string FROM mysql.user;
結(jié)果如下
該查詢語句返回三個列:user表示用戶名,host表示用戶所在的主機(jī),authentication_string表示該用戶的加密密碼或者密碼哈希值。
為了查看每個用戶的具體權(quán)限,可以使用以下語句:
SHOW GRANTS FOR 'user_name'@'host_name';
該語句將顯示指定用戶在特定主機(jī)上授予的權(quán)限。注意,密碼哈希值在授權(quán)語句中是不可見的。
執(zhí)行之后會出現(xiàn):
+-----------------------------------------------------------------------------------------------+
| Grants for user_name@host_name |
+-----------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'user_name'@'host_name' IDENTIFIED BY PASSWORD 'password_hash' |
| GRANT SELECT, INSERT, UPDATE ON `testdb`.* TO 'user_name'@'host_name' |
| GRANT CREATE ON `sampledb`.* TO 'user_name'@'host_name' |
+-----------------------------------------------------------------------------------------------+
例如,上述結(jié)果表明user_name
在host_name
上擁有以下權(quán)限:
- 對所有的數(shù)據(jù)庫和所有的表都擁有 USAGE 權(quán)限
- 對
testdb
庫下的所有表具有SELECT
、INSERT
和UPDATE
權(quán)限 - 對
sampledb
庫下的所有表具有CREATE
權(quán)限
如果想查看所有用戶的權(quán)限,可以使用以下語句:
SELECT DISTINCT CONCAT('SHOW GRANTS FOR \'', user, '\'@\'', host, '\';') AS query FROM mysql.user;
該語句將為每個用戶構(gòu)建SHOW GRANTS語句,并將其作為查詢結(jié)果返回??梢詫⒉樵兘Y(jié)果拷貝到命令行中執(zhí)行,以查看每個用戶的具體權(quán)限。
到此這篇關(guān)于Mysql用戶創(chuàng)建以及權(quán)限賦予操作的實現(xiàn)的文章就介紹到這了,更多相關(guān)Mysql用戶創(chuàng)建及權(quán)限賦予內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MySQL創(chuàng)建用戶與授權(quán)及撤銷用戶權(quán)限方法
- MySQL 創(chuàng)建用戶、授權(quán)用戶、撤銷用戶權(quán)限、更改用戶密碼、刪除用戶(實用技巧)
- mysql創(chuàng)建本地用戶及賦予數(shù)據(jù)庫權(quán)限的方法示例
- 詳解mysql8.0創(chuàng)建用戶授予權(quán)限報錯解決方法
- MySQL創(chuàng)建用戶和權(quán)限管理的方法
- MySql添加新用戶及為用戶創(chuàng)建數(shù)據(jù)庫和給用戶分配權(quán)限方法介紹
- mysql創(chuàng)建用戶并賦予用戶權(quán)限詳細(xì)操作教程
- MySQL中的用戶創(chuàng)建與權(quán)限管理
- MySQL8.0創(chuàng)建用戶和權(quán)限控制示例詳解
- MySQL創(chuàng)建用戶以及用戶權(quán)限詳細(xì)圖文教程
相關(guān)文章
MySQL 8中新增的這三大索引 隱藏、降序、函數(shù)
這篇文章主要介紹了MySQL 8.x版本中新增的三大索引 隱藏索引、降索引序、函數(shù)索引,如果文章對你有點幫助,小伙伴們點贊、收藏、評論、分享走起呀2021-09-09MySql數(shù)據(jù)庫基礎(chǔ)之分組查詢詳解
這篇文章主要介紹了mysql按照時間分組查詢的語句,非常實用,sql語句簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-09-09CentOS 7中源碼安裝MySQL 5.7.6+詳細(xì)教程
最近在CentOS 7中源碼安裝MySQL 5.7.6+,發(fā)現(xiàn)MySQL5.7.6+以后的安裝方式真的與以前版本的MySQL安裝方式大大的不同呀。不自己安裝一把,你都不知道不同之處在哪,下面這篇文章是通過自己的安裝過程總結(jié)的一篇安裝教程,有需要的朋友們可以參考借鑒,下面來一起看看吧。2016-12-12Windows10下mysql 8.0.19 winx64安裝教程及修改初始密碼
這篇文章主要為大家詳細(xì)介紹了Windows10下mysql 8.0.19 winx64安裝教程及修改初始密碼,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-02-02MySQL中create table as 與like的區(qū)別分析
這篇文章主要介紹了MySQL中create table as 與like的區(qū)別,結(jié)合實例分析了二者在使用中的具體區(qū)別與主要用途,需要的朋友可以參考下2016-01-01Last_Errno:?1062,Last_Error:?Error?Duplicate?entry
Last_Errno:?1062,Last_Error:?Error?Duplicate?entry?...?for?key?PRIMARY2014-02-02