mysql中的使用者與許可權管理

2021-09-25 15:29:44 字數 4506 閱讀 1671

我就直接po**了

#mysql中的使用者與許可權管理

/*使用者要連線mysql資料庫伺服器

分為2個階段

1.你有沒有權連線上來

2.你有沒有權執行此操作(如select,update等等)

對於1,伺服器如何判斷使用者有沒有權連線上來?

依據3個引數

host 你從哪兒來?

user 你是誰?

password 你的密碼是多少?

使用者的這3個資訊,儲存在mysql.user表中(即mysql庫的user表)

*//*

注意:grant(授予)/revoke(收回)使用者許可權後,該使用者需要重新登入/連線mysql資料庫,許可權才能生效*/#

select host, user, password from mysql.`user`;

select * from mysql.`user`;

#select password('root'), password('666666');

#沖刷許可權(可以理解成重新整理一下記憶體)

flush privileges;

#當前所在的庫

select database();

#當前的賬戶

select current_user();

select user();

#use mysql;

#show tables;

#select host, user, password from mysql.user;

#資料庫級許可權

select * from mysql.db;

#表級許可權

select * from mysql.tables_priv;

#列級許可權

select * from mysql.columns_priv;

#select host, user, password from mysql.user;

#修改host,使ip可以連線

update user set host = '192.168.6.%' where user = 'root';

flush privileges; #沖刷許可權

#修改使用者的密碼

update mysql.user set password = password('root') where user = 'root';

flush privileges; #沖刷許可權

#新增乙個使用者

/*grant [許可權1, 許可權2, 許可權3....] on 庫名.表名 to 使用者名稱@'ip位址即host' identified by '密碼';

常用許可權有 all, create, drop, insert, delete, update, select

*/grant all on *.* to jack@'192.168.10.%' identified by '6666';

grant all privileges on *.* to lily@'192.%.%.%' identified by '9999';

grant select on *.* to root@'%';

grant all on *.* to root@'%';

#privileges關鍵字可以省略

grant all on myemployees.employees to lucy@'192.168.%.%' identified by '8888';

#子句"with grant option" 表示該使用者可以為其他使用者分配許可權。

grant all on *.* to tom@'%' identified by '6666' with grant option;

grant all on girls.* to tom@'%' identified by '6666' with grant option;

select host, user, password from mysql.user;

select * from mysql.user;

select * from mysql.user where user = 'tom';

#grant all on *.* to zhangwuji@'%' identified by '6666';

#收回許可權

revoke all on *.* from zhangwuji@'%';

revoke all on *.* from jack@'192.168.10.%';

flush privileges;

#庫及表級授權與收回

#針對某個庫做授權

#把myemployees這個庫授權給zhangwuji這個使用者

grant all on myemployees.* to zhangwuji@'%';

flush privileges;

#收回許可權

revoke all on myemployees.* from zhangwuji@'%';

flush privileges;

##針對表做授權

grant select, insert on myemployees.book to zhangwuji@'%';

flush privileges;

#經過測試,使用者zhangwuji對myemployees庫的book表,確實只能做select查詢和insert新增操作

#收回許可權

revoke select, insert on myemployees.book from zhangwuji@'%';

flush privileges;

#經過測試,此時使用者zhangwuji對myemployees庫的book表,已經沒有select和insert的許可權了

/*mysql資料庫的許可權控制,可以精確到列

*/#針對表中某些列做授權

grant select(bname, price) on myemployees.book to zhangwuji@'%';

flush privileges;

#select * from mysql.user;

select * from mysql.host;

#資料庫級許可權

select * from mysql.db;

#表級許可權

select * from mysql.tables_priv;

#列級許可權

select * from mysql.columns_priv;

#show grants for tom;

show grants;

#刪除使用者drop user username@localhost;

select host, user, password from mysql.user;

drop user lily@'192.%.%.%'; #刪除使用者

select host, user, password from mysql.user;

#select host, user, password from mysql.user;

drop user weixiaobao@'%'; #刪除使用者

#grant all on *.* to linghuchong@'%' identified by '6666' with grant option;

flush privileges;

#revoke all on *.* from linghuchong@'%';

flush privileges;

#grant all on myemployees.* to linghuchong@'%' identified by '6666' with grant option;

flush privileges;

#revoke all on myemployees.* from linghuchong@'%';

flush privileges;

#grant all on *.* to weixiaobao@'%' identified by '6666';

flush privileges;

#如下寫法,不能將weixiaobao使用者的myemployees庫的許可權收回來

revoke all on *.* from weixiaobao@'%';

flush privileges;

#grant all on myemployees.* to weixiaobao@'%' identified by '6666';

flush privileges;

#select * from mysql.db;

#如下寫法,才能將weixiaobao使用者的myemployees庫的許可權收回來

revoke all on myemployees.* from weixiaobao@'%';

flush privileges;

#show grants for linghuchong;

show grants for weixiaobao;

mysql 使用者 MySQL使用者與許可權的管理詳解

使用者連線到mysql,可以做各種查詢,這都是mysql使用者與許可權功能在背後維持著操作。使用者與資料庫伺服器互動資料,分為兩個階段 1 你有沒有權連線上來 2 你有沒有權執行本操作 1 你有沒有權連線上來 伺服器如何判斷使用者有沒有權連線上來?依據 1 你從 來?host 2 你是誰?user ...

Mysql使用者與許可權管理

對於root使用者的密碼操作 更改使用者密碼 剛剛安裝完的mysql,只一有個root使用者,密碼為空,而且只能在本機登入!為root加上密碼 123 bin mysqladmin u root password 123 或寫成 bin mysqladmin uroot password 123 加...

mysql 使用者管理與許可權

create user username host identified by password host 僅允許本地使用者登陸使用具體ip或 localhost 允許任意遠端主機登陸使用萬用字元 密碼可設可不設。grant privileges on database.tablesname to ...