mysql刪除使用者再新建該使用者,仍然具有原來的許可權的解決辦法

rainbowbridg發表於2010-01-08
所以如果需要減小許可權,需要刪除原來的使用者然後再從新建立一個新使用者!

還有,重新建立使用者後 (grant select,update on *.* to 'aa'@'%' identified by 'aa';),發現還是能delete 和 insert資料

這是因為除了在user表控制許可權外,db表也控制對資料庫的許可權,需要把這裡邊的相應資料刪除後flush privileges後就可以了!

[@more@]
使用者問題:

發現先按下列語句建立使用者:

mysql> grant all privileges on *.* to 'aa'@'%' identified by 'aa';
Query OK, 0 rows affected (0.00 sec)

mysql> select * from mysql.user where user = 'aa' G
*************************** 1. row ***************************
Host: %
User: aa
Password: *DEE59C300700AF9B586F9F2A702231C0AC373A13
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Reload_priv: Y
Shutdown_priv: Y
Process_priv: Y
File_priv: Y
Grant_priv: N
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
1 row in set (0.00 sec)

然後:

mysql> grant select,update on *.* to 'aa'@'%' identified by 'aa';
Query OK, 0 rows affected (0.00 sec)

mysql> select * from mysql.user where user = 'aa' G
*************************** 1. row ***************************
Host: %
User: aa
Password: *DEE59C300700AF9B586F9F2A702231C0AC373A13
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Reload_priv: Y
Shutdown_priv: Y
Process_priv: Y
File_priv: Y
Grant_priv: N
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
1 row in set (0.00 sec)

發現許可權沒有改變...
難道這樣新加的是在前面的許可權基礎上再新增許可權?

新建個使用者看看:


mysql> grant select,update on *.* to 'bb'@'%' identified by 'bb';
Query OK, 0 rows affected (0.00 sec)

mysql> select * from mysql.user where user = 'bb' G
*************************** 1. row ***************************
Host: %
User: bb
Password: *E72B08C841E005B05BD564FA1C18CAFFB9FEF5FC
Select_priv: Y
Insert_priv: N
Update_priv: Y
Delete_priv: N
Create_priv: N
Drop_priv: N
Reload_priv: N
Shutdown_priv: N
Process_priv: N
File_priv: N
Grant_priv: N
References_priv: N
Index_priv: N
Alter_priv: N
Show_db_priv: N
Super_priv: N
Create_tmp_table_priv: N
Lock_tables_priv: N
Execute_priv: N
Repl_slave_priv: N
Repl_client_priv: N
Create_view_priv: N
Show_view_priv: N
Create_routine_priv: N
Alter_routine_priv: N
Create_user_priv: N
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
1 row in set (0.00 sec)

mysql> grant delete,insert on *.* to 'bb'@'%' identified by 'bb';
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql> select * from mysql.user where user = 'bb' G
*************************** 1. row ***************************
Host: %
User: bb
Password: *E72B08C841E005B05BD564FA1C18CAFFB9FEF5FC
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: N
Drop_priv: N
Reload_priv: N
Shutdown_priv: N
Process_priv: N
File_priv: N
Grant_priv: N
References_priv: N
Index_priv: N
Alter_priv: N
Show_db_priv: N
Super_priv: N
Create_tmp_table_priv: N
Lock_tables_priv: N
Execute_priv: N
Repl_slave_priv: N
Repl_client_priv: N
Create_view_priv: N
Show_view_priv: N
Create_routine_priv: N
Alter_routine_priv: N
Create_user_priv: N
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
1 row in set (0.00 sec)

從上面可以看出,是許可權的一個疊加

所以如果需要減小許可權,需要刪除原來的使用者然後再從新建立一個新使用者!

還有,重新建立使用者後 (grant select,update on *.* to 'aa'@'%' identified by 'aa';),發現還是能delete 和 insert資料

這是因為除了在user表控制許可權外,db表也控制對資料庫的許可權,需要把這裡邊的相應資料刪除後flush privileges後就可以了!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7916042/viewspace-1030398/,如需轉載,請註明出處,否則將追究法律責任。

相關文章