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