本文目錄一覽:
mysql 8.0 創建新的數據庫、用戶並授權,以及相關查看並刪除操作
以創建wordpress網站的數據庫為例
1、創建數據庫
創建可指定字符,或者不指定字符,如果不指定字符,默認為 utf8mb4 和 utf8mb4_0900_ai_ci
2、創建用戶
可自行指定用戶可訪問的IP地址範圍。
3、授權用戶
4、直接一步到位
或者 這種方法 :創建並授權用戶,是二和三的合併。
1、查看數據庫
show databases可查詢所有存在的數據庫
2、查看用戶信息
用戶信息在系統數據庫mysql中的user表中。密碼查詢不會顯示明文密碼,而是顯示為加密後的密文。
3、查看用戶權限
有兩種方式查看。
第一種方式 : show grants for ‘userwordpress’;
第二種方式: select * from mysql.user where user=’userwordpress’G;
g 相當於’;’
G使每個字段打印到單獨的行,也有 ’;’ 的作用
只能查出哪個數據庫的哪張表的權限,如查userwordpress在mysql數據庫的user表的權限,顯示都是N(no),沒有權限,如果查root用戶就都是Y(yes)選擇了。
用drop而非delete,簡單的區分就是,drop是刪除【表】,truncate與delete則是刪除表中【記錄】。
刪除用戶
同理,刪除數據庫
用drop刪除時,會有確認信息,為了防止誤刪。(刪庫跑路,請謹慎操作)
mysql中創建賬號的關鍵字是
1.CREATE USER
CREATE USER user [IDENTIFIED BY [PASSWORD] ‘password’]
[, user [IDENTIFIED BY [PASSWORD] ‘password’]] …
CREATE USER用於創建新的MySQL賬戶。要使用CREATE USER,您必須擁有mysql數據庫的全局CREATE USER權限,或擁有INSERT權限。對於每個賬戶,CREATE USER會在沒有權限的mysql.user表中創建一個新記錄。如果 賬戶已經存在,則出現錯誤。
使用自選的IDENTIFIED BY子句,可以為賬戶給定一個密碼。user值和 密碼的給定方法和GRANT語句一樣。特別是,要在純文本中指定密碼,需忽略PASSWORD關鍵詞。要把 密碼指定為由PASSWORD()函數返回的混編值,需包含關鍵字PASSWORD。
2.使用GRANT語句
最好的方法是使用GRANT語句,因為這樣更精確,錯誤少。從MySQL 3.22.11起提供了GRANT;它的主要用途是來給帳戶授權的,但也可用來建立新帳戶並同時授權。注意:當mysql運行於no_auto_create_user時要提供新建用戶的密碼,否則不能創新用戶。
下面的示例說明如何使用MySQL客戶端程序來設置新用戶。
首先,使用MySQL程序以MySQL root用戶來連接服務器:
shell MySQL –user=root MySQL
如果你為root賬戶指定了密碼,還需要為該MySQL命令和本節中的其它命令提供–password或-p選項。
以root連接到服務器上後,可以添加新賬戶。下面的語句使用GRANT來設置四個新賬戶:
mysql GRANT ALL PRIVILEGES ON *.* TO ‘monty’@’localhost’
– IDENTIFIED BY ‘some_pass’ WITH GRANT OPTION;
mysql GRANT ALL PRIVILEGES ON *.* TO ‘monty’@’%’
– IDENTIFIED BY ‘some_pass’ WITH GRANT OPTION;
mysql GRANT RELOAD,PROCESS ON *.* TO ‘admin’@’localhost’;
mysql GRANT USAGE ON *.* TO ‘dummy’@’localhost’;
用GRANT語句創建的賬戶有下面的屬性:
· 其中兩個賬戶有相同的用戶名monty和密碼some_pass。兩個賬戶均為超級用戶賬戶,具有完全的權限可以做任何事情。一個賬戶 (‘monty’@’localhost’)只用於從本機連接時。另一個賬戶(‘monty’@’%’)可用於從其它主機連接。請注意monty的兩個賬戶必須能從任何主機以monty連接。沒有localhost賬戶,當monty從本機連接時,mysql_install_db創建的localhost的匿名用戶賬戶將佔先。結果是,monty將被視為匿名用戶。原因是匿名用戶賬戶的Host列值比’monty’@’%’賬戶更具體,這樣在user表排序順序中排在前面。(user表排序的討論要參考mysql手冊)。
· 一個賬戶有用戶名admin,沒有密碼。該賬戶只用於從本機連接。授予了RELOAD和PROCESS管理權限。這些權限允許admin用戶執行mysqladmin reload、mysqladmin refresh和mysqladmin flush-xxx命令,以及mysqladmin processlist。未授予訪問數據庫的權限。你可以通過GRANT語句添加此類權限。
· 一個賬戶有用戶名dummy,沒有密碼。該賬戶只用於從本機連接。未授予權限。通過GRANT語句中的USAGE權限,你可以創建賬戶而不授予任何權限。它可以將所有全局權限設為’N’。假定你將在以後將具體權限授予該賬戶。
mysql如何創建新用戶
MySql中添加用戶,新建數據庫,用戶授權,刪除用戶,修改密碼(注意每行後邊都跟個;表示一個命令語句結束):
1.新建用戶
1.1 登錄MYSQL:
@mysql -u root -p
@密碼
1.2 創建用戶:
mysql insert into mysql.user(Host,User,Password) values(“localhost”,”test”,password(“1234”));
這樣就創建了一個名為:test 密碼為:1234 的用戶。
注意:此處的”localhost”,是指該用戶只能在本地登錄,不能在另外一台機器上遠程登錄。如果想遠程登錄的話,將”localhost”改為”%”,表示在任何一台電腦上都可以登錄。也可以指定某台機器可以遠程登錄。
1.3 然後登錄一下:
mysqlexit;
@mysql -u test -p
@輸入密碼
mysql登錄成功
2.為用戶授權
授權格式:grant 權限 on 數據庫.* to 用戶名@登錄主機 identified by “密碼”;
2.1 登錄MYSQL(有ROOT權限),這裡以ROOT身份登錄:
@mysql -u root -p
@密碼
2.2 首先為用戶創建一個數據庫(testDB):
mysqlcreate database testDB;
2.3 授權test用戶擁有testDB數據庫的所有權限(某個數據庫的所有權限):
mysqlgrant all privileges on testDB.* to test@localhost identified by ‘1234’;
mysqlflush privileges;//刷新系統權限表
格式:grant 權限 on 數據庫.* to 用戶名@登錄主機 identified by “密碼”;
2.4 如果想指定部分權限給一用戶,可以這樣來寫:
mysqlgrant select,update on testDB.* to test@localhost identified by ‘1234’;
mysqlflush privileges; //刷新系統權限表
2.5 授權test用戶擁有所有數據庫的某些權限:
mysqlgrant select,delete,update,create,drop on *.* to test@”%” identified by “1234”;
//test用戶對所有數據庫都有select,delete,update,create,drop 權限。
//@”%” 表示對所有非本地主機授權,不包括localhost。(localhost地址設為127.0.0.1,如果設為真實的本地地址,不知道是否可以,沒有驗證。)
//對localhost授權:加上一句grant all privileges on testDB.* to test@localhost identified by ‘1234’;即可。
原創文章,作者:CU0CD,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/129950.html