日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql用户 11_MySQL-快速入门(11)用户管理

發布時間:2023/12/1 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql用户 11_MySQL-快速入门(11)用户管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、權限表

存儲用戶權限信息表主要有:user、db、host、tables_priv、columns_priv、procs_priv。

1》user表:

記錄允許連接到服務器的賬號信息,里面的權限是全局級別的。user表有42個字段,這些字段可以分為4類,分別是用戶列、權限列、安全列、資源控制列。

2》db和host表

3》tables_priv和columns_priv表

4》procs_priv表

2、賬戶管理

1》登錄和登出MySQL

mysql [-h localhost] -uroot -p12345 -P端口號,默認3306 -e命令或SQL語句

2》新建普通用戶

1>create user或grant語句:

//create user ...

create user user_specification[,user_specification] ...

user_specification:

user@host

[

identified by [password]'password'

|identified with auth_plugin [as 'auth_string']

]

user:表示創建的用戶名稱

host:表示允許登錄的用戶主機名

identified by:表示用來設置用戶的密碼。與identitied with互斥。

[password]:表示使用hash值設置密碼'password':表示登錄時使用的普通明文密碼

identified with:為用戶指定一個身份驗證插件。與identified by互斥。

auth_plugin:插件的名稱

auth_string:該參數傳值給身份驗證插件,由該插件解析該參數的意義

舉例:create user 'lfy'@'localhost' identified by '12345';

或者

create user 'lfy'@'localhost';

//grant語句不僅可以創建用戶,還可以在創建用戶的同時授權

grant privileges on db.table

to user@host [identified by'password'] [,user [identified by 'password']]

[with grant option];

privileges:表示賦予用戶的權限類型

db.table:表示用戶的權限所作用的數據庫中的表

identified by:設置的密碼

[with grant option]:表示對新建立的用戶賦予grant權限,即該用戶可以對其他用戶賦予權限。

grant select,update on *.*to'lfy'@'localhost' identified by '12345';

user、host字段區分大小寫。查詢的時候需要指定正確的值。

2>直接操作MySQL授權表:

insert into MySQL.user(user,host,password,[privilegelist]) values(...)

3》刪除普通用戶,2種方式。

1>drop user語句

drop user user1 [,user2];

2>delete刪除用戶

delete from MySQL.user where host='hostname' and user='username';

4》root用戶修改自己的密碼

1>mysqladmin命令

mysqladmin -u username -h localhost -p password 'newpwd';

2>修改MySQL.user表

update MySQL.user set password=password("rootpwd") where user="root" and host="localhost";

執行完上面的語句修改密碼后,還需要執行:

mysql>FLUSH PRIVILEGES; //重新加載權限

3>使用set語句修改root用戶的密碼

//可以修改別的用戶的密碼,也可以修改自己的密碼

mysql>set password=password("rootpwd");

mysql>FLUSH PRIVILEGES;

5》root用戶修改普通用戶的密碼:set數據庫的MySQL.user表,或者grant語句

1>使用set語句修改普通用戶的密碼

set password for 'user'@'host' = password('somepassword');//普通用戶更改自己的密碼

set password=password('somepassword');

2>使用update語句修改普通用戶的密碼

update MySQL.user set password=password('pwd')

where user='username' and host='hostname';

PLUSH PRIVILEGES;

3>使用grant語句修改普通用戶密碼

grant urant on *.* to 'user'@'%' identified by 'somepassword';

//全局界別使用grant usage語句(*.*)指定某個賬戶的密碼而不影響賬戶當前的權限。

使用grant ... identified by語句或者MySQLadmin password命令設置密碼,它們俊輝加密密碼。這種情況下,

不需要使用password()函數

6》普通用戶修改密碼

set password = password('pwd');

7》root用戶密碼丟失

1>使用--skip-grant-tables選項啟動MySQL服務

使用使用--skip-grant-tables選項啟動MySQL服務,MySQL數據庫服務器將不加載權限判斷,任何用戶都能訪問數據庫。Windows操作系統中,可以使用MySQLLd或MySQLLd-nt來啟動MySQL服務進程。

mysqld --skip-grant-tables

或者

mysqld-nt --skip-grant-tables

2>使用root用戶登錄,重新設置密碼。

3、權限管理

1》MySQL的各種權限

2》授權

1>全局層級:全局權限適用于一個給定服務器中的所有數據庫。這些權限存儲在MySQL.user表中。grant all on *.*和revoke all on *.*只授予和撤銷全局權限。

2>數據庫層級

數據庫權限適用于一個給定數據庫中的所有目標。這些權限存儲在MySQL.db和MySQL.host表中。grant all on db_name.和revoke all on db_name.*只授予和撤銷數據庫權限。

3>表層級

表權限適用于一個給定表中的所有列。

4>列層級

列權限適用于一個給定表中的單一列。

5>子程序層級

3》收回權限

revoke ...

4》查看權限

mysql> show grants for 'mysql'@'localhost';+----------------------------------------------------------------------+

| Grants for mysql@localhost |

+----------------------------------------------------------------------+

| GRANT ALL PRIVILEGES ON *.* TO 'mysql'@'localhost' WITH GRANT OPTION |

+----------------------------------------------------------------------+

1 row in set (0.00sec)

mysql>

4、訪問控制

1》連接核實階段

通過Host、user、password幾個字段核實用戶的連接請求。不能通過,則拒絕訪問數據庫服務器。

2》請求核實階段

對于通過連接的會話,對于此鏈接上的每個請求,服務器檢查用戶要執行的操作,然后檢查是否有足夠的權限來執行它。

總結

以上是生活随笔為你收集整理的mysql用户 11_MySQL-快速入门(11)用户管理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。