用戶權限管理操作? DCL語句
一.用戶管理操作
MySQL軟件內部完整的用戶格式:
用戶名@客戶端地址
admin@1.1.1.1這個用戶只能從1.1.1.1的客服端來連接服務器
admin@1.1.1.2這個用戶只能從1.1.1.2的客服端來連接服務器
root@local host這個用戶只能從服務器本地進行連接。
客服端地址的不同類型:
1.IP地址admin@192.168.1.1
2.本地登錄admin@local host這個用戶只能從服務器本地進行登錄。
3.主機名admin@nodel01.linux.com這個用戶只能從nodel01這臺機器用admin用戶來登錄數據庫
4.網段 admin@192.168.1.%這表示這個admin用戶允許IP地址在192.168.1.%這個范圍內的所有機器使用來登錄數據庫。
5.所有主機admin@%不包括本地的local host。
對于MySQL服務器來說真正連接MySQL服務器的才能叫做客戶端。
二。如何去創建一個用戶?
可以用戶help 加create,來查看數據庫內部所有關于create操作的語句。
可以使用help 命令來查看命令的詳細用法。
語法:create user “用戶名”@“客戶端地址” identified by “密碼”
示例1:創建允許本地登錄的用戶,名稱為admin。
create user “admin”@“local host” identified by “WWW.1.com”;
如上圖所示,flush privileges;的作用是刷新權限表,
它僅僅是從磁盤上的權限表中重新讀取信息到MySQL服務器的內存中,確保服務器使用的是最新權限配置。
當在MySQL數據庫中對用戶賬號、角色或權限進行了修改(例如,創建新用戶、修改用戶權限或刪除用戶等操作),這些更改會保存到MySQL的系統權限表中。然而,在某些情況下,MySQL服務器可能不會立即意識到這些權限表的變化,尤其是在直接編輯了權限表的情況下。
可以使用select user,host from mysql.user;
在MySQL數據庫中可以使用select user();
來查看當前數據庫中是那個用戶在登錄MySQL軟件。
如上圖所示,當你使用創建的新用戶admin來從本地機器登錄MySQL數據庫時,你只能看見一個數據庫,information_schema數據庫是用來儲存當前MySQL數據庫中的元數據信息的。
information_schema數據庫在MySQL軟件內部對所有普通用戶而言是個只讀數據庫。
示例2:別的機器可以連接MySQL數據庫,則MySQL數據庫中要有允許別的機器遠程連接的用戶存在。
如果只是想開放MySQL端口而非完全關閉防火墻,可以添加規則來允許3306端口的流量:
Bash
1sudo firewall-cmd --permanent --add-port=3306/tcp
2sudo firewall-cmd --reload
可以將上述代碼輸入裝有MySQL數據庫的操作系統的命令行界面上使得MySQL數據庫軟件能夠接收來自3306端口的流量。
首先使用create user ‘用戶名’ @ ‘IP地址’ identified by ‘密碼’;
隨后使用flush priviledes;去刷新權限表,
?mysql -u admin -p -h 192.168.215.129
使用這條命令隨后在確認密碼就可以了。
同樣就只能看見一個記錄元數據的數據庫,
示例3:創建允許Windows連接的遠程用戶
自己電腦Windows下的VMnet8的IPv4 地址作為新建用戶的客戶端。
在Windows操作上我們可以使用可視化工具來連接MySQL數據庫軟件。
三.刪除用戶
drop user 用戶名@客戶端
四.修改用戶密碼
方法.1:mysqladmin 用于修改本地登錄用戶的密碼。
就是mysqladmin -u martin -p password “新密碼”;
隨后輸入舊密碼,確認。
history
方法2:set password for '用戶名@客服端' = password(‘新密碼’);
set password for
可以使用help set password來查這條SQL語句的使用格式。
這個set password for 用戶名 = password (‘新密碼’);
flush privileges;更新授權表。
方法3.直接使用update mysql.set authentication_string=password("新密碼") where user=‘用戶名’ and host=“客戶端”;
select user,host,authentication_string from mysql.user;
五。重置MySQL數據庫管理員密碼
1.編輯my.cnf配置文件
【mysqld】
skip-grant-tables //跳過授權表
#systemctl restart mysqld
2.使用root用戶登錄數據庫,使用update修改密碼
3.將配置文件中跳過授權表的配置刪除,重啟數據庫服務。
在MySQL軟件中用戶的信息存在哪張表上
mysql數據庫軟件,在mysql數據庫中有一個user表,所有用戶的信息都存在這張表上。
想查看一個數據庫中所有的表可以使用命令show tables;
字段結構:user ,host,authentication_string
剩余的其他字段使用來標記用戶的權限的。
可以使用user字段來儲存用戶名,可以用host字段來儲存客戶端命令,可以用authentication_string來儲存用戶的密碼。
單純只是查看用戶名和客戶端的話,可以使用命令select user, host from mysql.user
來調出mysql數據庫中user表的user字段和host字段的信息。
如上圖所示,也可以使用命令select user,host,authentication_string from mysql.user
來查看數據庫mysql中表user中用戶名信息,客戶端信息,以及用戶的密碼信息。