溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL中的用戶創建與權限管理怎么實現

發布時間:2022-09-02 17:04:40 來源:億速云 閱讀:176 作者:iii 欄目:MySQL數據庫

這篇文章主要講解了“MySQL中的用戶創建與權限管理怎么實現”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“MySQL中的用戶創建與權限管理怎么實現”吧!

一、用戶管理

mysql庫里有個user表可以查看已經創建的用戶

1.創建MySQL用戶

注意:MySQL中不能單純通過用戶名來說明用戶,必須要加上主機。如hhy@10.1.1.1

基本語法:

mysql> create user '用戶名'@'被允許連接的主機名稱或主機的IP地址' identified by '用戶密碼';
mysql> select user,host from mysql.user;

案例:創建一個MySQL賬號,用戶名:hhy,用戶密碼:123

mysql> create user 'hhy'@'localhost' identified by '123';
/*或*/
mysql> create user 'hhy'@'127.0.0.1' identified by '123';

案例:創建一個MySQL賬號(要求開通遠程連接),主機IP地址:192.1668.44.110,用戶名:test,用戶密碼:123

mysql> create user 'test'@'192.1668.44.110' identified by '123';

測試:在IP地址為192.168.44.110的主機上

# yum install mysql -y
# mysql -h 192.168.44.110 -P 3306 -uharry -p
Enter password:123

選項說明:192.168.44.110 :MySQL服務器端的IP地址

yum安裝mysql:代表安裝的是MySQL的客戶端
yum安裝mysql-server:代表安裝的是MySQL的服務器端

案例:創建一個MySQL賬號(要求開通遠程連接),主機IP的網段:10.1.1.0,用戶名:jack,用戶密碼:123

create user 'jack'@'192.168.44.%' identified by '123'

案例:創建一個MySQL賬號(要求開通遠程連接),要求面向所有主機開放,用戶名:root,用戶密碼:123

create user 'root'@'%' identified by '123';

2. 刪除MySQL用戶

基本用戶:

mysql> drop user '用戶名'@'主機名稱或主機的IP地址';

特別說明:

如果在刪除用戶時沒有指定主機的名稱或主機的IP地址,則默認刪除這個賬號的所有信息。

案例:刪除hhy這個賬號

drop user 'hhy'@'localhost';

案例:刪除jack這個賬號

drop user 'jack'@'192.168.44.%';

案例:創建兩個harry賬號(localhost/10.1.1.23),然后刪除其中的某個

mysql> create user 'harry'@'localhost' identified by '123';
mysql> create user 'harry'@'192.168.44.110' identified 

mysql> drop user 'harry'@'192.168.44.110';

刪除MySQL賬號的另外一種方式

mysql> delete from mysql.user where user='root' and host='%';
mysql> flush privileges;

3. 修改MySQL用戶

特別說明:MySQL用戶重命名通??梢愿膬刹糠?,一部分是用戶的名稱,一部分是被允許訪問的主機名稱或主機的IP地址。

基本語法:

mysql> rename user 舊用戶信息 to 新用戶信息;

案例:把用戶’root’@'%‘更改為’root’@‘10.1.1.%’

mysql> rename user 'root'@'%' to 'root'@'10.1.1.%';

案例:把’harry’@‘localhost’更名為’hhy’@‘localhost’

mysql> create user 'tom'@'localhost' identified by '123';
mysql> rename user 'tom'@'localhost' to 'hhy'@'localhost';

使用update語句更新用戶信息

mysql> update mysql.user set user='hhy',host='localhost' where user='tom' and host='localhost';

mysql> flush privileges;

二、權限管理

1. 權限說明

所有權限說明

USAGE	無權限,只有登錄數據庫,只可以使用test或test_*數據庫
ALL		所有權限
以下權限為指定權限
select/update/delete/super/replication slave/reload...
with grant option 選項表示允許把自己的權限授予其它用戶或者從其他用戶收回自己的權限

默認情況下,分配權限時如果沒有指定with grant option,代表這個用戶不能下發權限給其他用戶,但是這個權限分配不能超過自身權限。

2. 權限保存位置(了解)

  • mysql.user:所有mysql用戶的賬號和密碼,以及用戶對全庫全表權限(*.*)

  • mysql.db :非mysql庫的授權都保存在此(db.*)

  • mysql.table_priv :某庫某表的授權(db.table)

  • mysql.columns_priv :某庫某表某列的授權(db.table.col1)

  • mysql.procs_priv :某庫存儲過程的授權

3. 給用戶授權

創建數據庫表:

create database java;
use java;
create table tb_student(
	id mediumint not null auto_increment,
	name varchar(20),
	age tinyint unsigned default 0,
	gender enum('男','女'),
	address varchar(255),
	primary key(id)
) engine=innodb default charset=utf8;

insert into tb_student values (null,'劉備',33,'男','湖北省武漢市');
insert into tb_student values (null,'貂蟬',18,'女','湖南省長沙市');
insert into tb_student values (null,'關羽',32,'男','湖北省荊州市');
insert into tb_student values (null,'大喬',20,'女','河南省漯河市');
insert into tb_student values (null,'趙云',25,'男','河北省石家莊市');
insert into tb_student values (null,'小喬',18,'女','湖北省荊州市');

基本語法:

mysql> grant 權限1,權限2 on 庫.表 to 用戶@主機
mysql> grant 權限(列1,列2,...) on 庫.表 to 用戶@主機

庫.表表示方法:*.*代表所有數據庫的所有數據表,db_itheima.*代表db_itheima數據庫中的所有數據表,db_itheima.tb_admin,代表db_itheima數據庫中的tb_admin表

案例:給thhy賬號分配java數據庫的查詢權限

mysql> grant select on java.* to 'hehanyu'@'192.168.44.%';

mysql> flush privileges;

案例:給hehanyu賬號分配java.tb_student數據表的權限(要求只能更改age字段)

mysql> grant update(age) on java.tb_student to 'hehanyu'@'192.168.44.%';

mysql> flush privileges;

案例:添加一個root@%賬號,然后分配所有權限

create user 'root'@'%' identified by '123';
grant all on *.* to 'root'@'%';
flush privileges;

4. 查詢用戶權限

查詢當前用戶權限:

mysql> show grants;

查詢其他用戶權限:

mysql> show grants for '用戶名稱'@'授權的主機名稱或IP地址';

5. with grant option選項

mysql> grant all on *.* to 'amy'@'10.1.1.%' identified by '123' with grant option;
mysql> grant all on *.* to 'harry'@'10.1.1.%' identified by '123';

如以上命令所示:amy擁有下發權限的功能,而harry不具備下發權限的功能。

如果grant授權時沒有with grant option選項,則其無法為其他用戶授權。

6.revoke回收權限

基本語法:

revoke 權限 on 庫.表 from 用戶;
查看hehanyu用戶權限
mysql> show grants for 'hehanyu'@'192.168.44.%';
撤消指定的權限
mysql> revoke update on java.tb_student from 'tom'@'192.168.44.%';
撤消所有的權限
mysql> revoke select on java.* from 'tom'@'192.168.44.%';

感謝各位的閱讀,以上就是“MySQL中的用戶創建與權限管理怎么實現”的內容了,經過本文的學習后,相信大家對MySQL中的用戶創建與權限管理怎么實現這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女