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

歡迎訪問 生活随笔!

生活随笔

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

数据库

mysql的本地id可以随便设置马_MySQL中的账号与权限管理

發布時間:2024/1/23 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql的本地id可以随便设置马_MySQL中的账号与权限管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MySQL權限管理

權限系統的工作原理

MySQL權限系統通過下面兩個階段進行認證:

(1)對連接的用戶進行身份認證,合法的用戶通過認證、不合法的用戶拒絕連接。

(2)對通過認證的合法用戶賦予相應的權限,用戶可以在這些權限范圍內對數據庫做相應的操作。

對于身份,MySQL是通過IP地址和用戶名聯合進行確認的,例如MySQL安裝默認創建的用戶root@localhost表示用戶root只能從本地(localhost)進行連接才可以通過認證,此用戶從其他任何主機對數據庫進行的連接都將被拒絕。也就是說,同樣的一個用戶名,如果來自不同的IP地址,則MySQL將其視為不同的用戶。

MySQL的權限表在數據庫啟動地時候就載入內存,當用戶通過身份認證后,就在內存中進行相應權限的存取,這樣,此用戶就可以在數據庫中做權限范圍內的各種操作了。

權限表的存取

在權限存取的兩個過程中,系統會用到“mysql”數據庫(安裝MySQL時被創建,數據庫名字叫“mysql”)中user、host和db這3個最重要的權限表

表名

user

db

host

用戶列

User

Host

Host

Password

Db

Db

權限列

Select_priv

User

Select_priv

Insert_priv

Select_priv

Insert_priv

Update_priv

Insert_priv

Update_priv

Delete_priv

Update_priv

Delete_priv

Create_priv

Delete_priv

Create_priv

Drop_priv

Create_priv

Drop_priv

Reload_priv

Drop_priv

Grant_priv

Shutdown_priv

Grant_priv

References_priv

Process_priv

References_priv

Index_priv

File_priv

Index_priv

Alter_priv

Grant_priv

Alter_priv

Create_tmp_table_priv

References_priv

Create_tmp_table_priv

Lock_tables_priv

Index_priv

Lock_tables_priv

Create_view_priv

Alter_priv

Create_view_priv

Show_view_priv

Show_db_priv

Show_view_priv

Create_routine_priv

Super_priv

Create_routine_priv

Alter_routine_priv

Create_tmp_table_priv

Alter_routine_priv

Execute_priv

Lock_tables_priv

Execute_priv

Trigger_priv

Execute_priv

Event_priv

Repl_slave_priv

Trigger_priv

Repl_client_priv

Create_view_priv

Show_view_priv

Create_routine_priv

Alter_routine_priv

Create_user_priv

Event_priv

Trigger_priv

Create_tablespace_priv

安全列

ssl_type

ssl_cipher

x509_issuer

x509_subject

max_questions

max_updates

max_connections

max_user_connections

在這個3表中,最重要的表

其中,通常用得最多的是用戶列和權限列,其中權限列在分為普通權限和管理權限。普通權限主要用于數據庫的操作,比如select_priv、create_priv等。而管理權限主要用來對數據庫進行管理的操作,比如process_priv、super_priv等。

當用戶進行連接的時候,權限表的存取過程有以下現個階段。

先從user表中的host、user和passwd這3個字段中判斷連接的IP、用戶名和密碼是否存在于表中,如果存在,則通過身份驗證,否則拒絕連接。

如果通過身份驗證,則按照以下權限表的順序得到數據庫權限:user->db->tables_priv->coloumns_priv。

在這幾個權限表中,權限范圍依次遞減,全局權限覆蓋局部權限。

上面的第一階段好理解,下面以一個例子來詳細解釋一下第二階段。

(1)創建用戶cqh@localhost,并賦予所有數據庫的所有表的select權限。

mysql> grant select on *.* to cqh@localhost;

Query OK, 0 rows affected (0.05 sec)

mysql> select * from user where user='cqh' and host='localhost' \G

*************************** 1. row ***************************

Host: localhost

User: cqh

Password:

Select_priv: Y

Insert_priv: N

Update_priv: N

Delete_priv: N

Create_priv: N

Drop_priv: N

...

(2)再來看db表:

mysql> select * from db where user='cqh';

Empty set (0.00 sec)

可以發現,user表的select_priv列是“Y”,而db表中并沒有記錄,也就是說,對所有數據庫都具有相同的權限的用戶記錄并不需要記入db表,而僅僅需要將user表中的select_priv改為“Y”即可。換句話,user表中的每個權限都代表了對所有數據庫都有的權限。

(3)將cqh@localhost上的權限改為只對test數據庫上所有表的select權限。

mysql> revoke select on *.* from cqh@localhost;

Query OK, 0 rows affected (0.00 sec)

mysql> grant select on test.* to cqh@localhost;

Query OK, 0 rows affected (0.00 sec)

mysql> select * from user where user='cqh' and host='localhost' \G

*************************** 1. row ***************************

Host: localhost

User: cqh

Password:

Select_priv: N

Insert_priv: N

Update_priv: N

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

Event_priv: N

Trigger_priv: N

Create_tablespace_priv: N

ssl_type:

ssl_cipher:

x509_issuer:

x509_subject:

max_questions: 0

max_updates: 0

max_connections: 0

max_user_connections: 0

plugin:

authentication_string: NULL

1 row in set (0.00 sec)

mysql> select * from db where user='cqh'\G

*************************** 1. row ***************************

Host: localhost

Db: test

User: cqh

Select_priv: Y

Insert_priv: N

Update_priv: N

Delete_priv: N

Create_priv: N

Drop_priv: N

Grant_priv: N

References_priv: N

Index_priv: N

Alter_priv: N

Create_tmp_table_priv: N

Lock_tables_priv: N

Create_view_priv: N

Show_view_priv: N

Create_routine_priv: N

Alter_routine_priv: N

Execute_priv: N

Event_priv: N

Trigger_priv: N

1 row in set (0.00 sec)

這個時候發現,user表中的select_priv變為“N”,而db表中則增加了db為test的一條記錄,也就是說,當只授予數據庫某些權限時,user表中的相應權限時,user表中的相應權限列保持“N”,而將具體的數據庫權限寫入db表。

table和column的權限機制和db類似,這里就不再贅述了。

從上面的例子可以看出,當用戶通過權限認證,進行權限分配時,將按照user->db->tables_priv->coloumns_priv的順序進行權限分配,即先檢查全局權限表user,如果user中對應權限為“Y”,則此用戶對所有數據庫的權限都為“Y”,將不再檢查db、tables_priv和coloumns_priv;如果為“N”,則到db表中檢查此用戶對應的具體數據庫,并得到db中為“Y”的權限;如果db中相應的權限為“N”,則檢查tables_priv中此數據庫對應的具體表,取得表中為“Y”的權限;如果tables_priv中相應權限為“N”,則檢查columns_priv中此表對應的具體列,取得列中為“Y”的權限。

賬號管理

賬號管理主要包括賬號的創建、權限更改和賬號的刪除。用戶連接數據庫的第一步都從賬號創建開始。

有兩種方法可以用來創建賬號:使用GRANT語法創建或者直接操作授權表,但更推薦使用第一種方法,因為操作簡單,出錯幾率更少。

方式一.創建賬號

GRANT的常用語法如下 :

GRANT

priv_type [(column_list)]

[, priv_type [(column_list)]] ...

ON [object_type] priv_level

TO user_specification [, user_specification] ...

[REQUIRE {NONE | ssl_option [[AND] ssl_option] ...}]

[WITH with_option ...]

GRANT PROXY ON user_specification

TO user_specification [, user_specification] ...

[WITH GRANT OPTION]

object_type:

TABLE

| FUNCTION

| PROCEDURE

來看下面的幾個例子。

例1:創建用戶cqh,權限為可以在所有數據庫上執行所有權限,只能從本地進行連接。

mysql> grant all privileges on *.* to cqh@localhost;

Query OK, 0 rows affected (0.00 sec)

mysql> select * from user where user='cqh' and host='localhost' \G

*************************** 1. row ***************************

Host: localhost

User: cqh

Password:

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

Event_priv: Y

Trigger_priv: Y

Create_tablespace_priv: Y

ssl_type:

ssl_cipher:

x509_issuer:

x509_subject:

max_questions: 0

max_updates: 0

max_connections: 0

max_user_connections: 0

plugin:

authentication_string: NULL

1 row in set (0.00 sec)

可以發現,除了Grant_priv權限外,所有權限在user表里都是“Y”。

例2:在例1基礎上,增加對cqh的grant權限

mysql> grant all privileges on *.* to cqh@localhost with grant option;

Query OK, 0 rows affected (0.00 sec)

mysql> select * from user where user='cqh' and host='localhost' \G

*************************** 1. row ***************************

Host: localhost

User: cqh

Password:

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: Y

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

Event_priv: Y

Trigger_priv: Y

Create_tablespace_priv: Y

ssl_type:

ssl_cipher:

x509_issuer:

x509_subject:

max_questions: 0

max_updates: 0

max_connections: 0

max_user_connections: 0

plugin:

authentication_string: NULL

1 row in set (0.00 sec)

例3:在例2基礎上,設置密碼為“123”。

mysql> grant all privileges on *.* to cqh@localhost identified by '123' with grant option;

Query OK, 0 rows affected (0.00 sec)

從user表中查看修改的密碼:

mysql> select * from user where user='cqh' and host='localhost' \G

*************************** 1. row ***************************

Host: localhost

User: cqh

Password: *23AE809DDACAF96AF0FD78ED04B6A265E05AA257

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: Y

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

Event_priv: Y

Trigger_priv: Y

Create_tablespace_priv: Y

ssl_type:

ssl_cipher:

x509_issuer:

x509_subject:

max_questions: 0

max_updates: 0

max_connections: 0

max_user_connections: 0

plugin:

authentication_string: NULL

1 row in set (0.00 sec)

可以發現,密碼變成了一堆加密后的字符串。在MySQL5.0里面,密碼的算法是生成一個以*開始的41位的字符串,而MySQL4.0之前是16位,因此安全性大大提高。

例4:創建新用戶chenqionghe,可以從任何IP進行連接,權限為test數據庫里的所有表進行SELECT、UPDATE、INSERT和DELETE操作,初始密碼為“123”。

mysql> grant select,insert,update,delete on test.* to 'chenqionghe'@'%' identified by '123';

Query OK, 0 rows affected (0.00 sec)

mysql> select * from user where user='chenqionghe' and host='%' \G

*************************** 1. row ***************************

Host: %

User: chenqionghe

Password: *23AE809DDACAF96AF0FD78ED04B6A265E05AA257

Select_priv: N

Insert_priv: N

Update_priv: N

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

Event_priv: N

Trigger_priv: N

Create_tablespace_priv: N

ssl_type:

ssl_cipher:

x509_issuer:

x509_subject:

max_questions: 0

max_updates: 0

max_connections: 0

max_user_connections: 0

plugin:

authentication_string: NULL

1 row in set (0.00 sec)

mysql> select * from db where user='chenqionghe' and host='%' \G

*************************** 1. row ***************************

Host: %

Db: test

User: chenqionghe

Select_priv: Y

Insert_priv: Y

Update_priv: Y

Delete_priv: Y

Create_priv: N

Drop_priv: N

Grant_priv: N

References_priv: N

Index_priv: N

Alter_priv: N

Create_tmp_table_priv: N

Lock_tables_priv: N

Create_view_priv: N

Show_view_priv: N

Create_routine_priv: N

Alter_routine_priv: N

Execute_priv: N

Event_priv: N

Trigger_priv: N

1 row in set (0.00 sec)

如上文所述,user表中的權限都是“N”,db表中增加的記錄權限則都是“Y”。一般地,我們只授予用戶適當的權限,而一般不會授予過多的權限,本例中的權限適合大多數應用賬號。

本例中的IP限制為所有IP都可以連接,因此設置為“*”,mysql數據庫中是通過user表的host字段來進行控制,host可以是以下類型的值。

Host值可以是主機名或IP號,或“localhost"批出本地主機

可以在Host列值使用通配符字符“%”和“_”。

Host值“%”匹配任何主機名,空Host值等價于“%”。它們的含義與LIKE操作符的模式匹配操作相同。例如,“%”的Host值與所有主機名匹配,而“%.mysql.com”匹配mysql.com域的所有主機。

host和user組合進行連接的例子

Host值

User值

被條目匹配的連接

cqh.loc.gov

cqh

cqh,從cqh.loc.gov連接

cqh.loc.gov

任何用戶,從cqh.loc.gov連接

%

cqh

cqh,從任何主機連接

%

任何用戶,從任何主機連接

%.loc.gov

cqh

cqh,從在loc.gov域的任何主機連接

x.y.%

cqh

cqh,從x.y.net、x.y.com、x.y.edu等連接

114.115.166.177

cqh

cqh,從有114.115.166.177IP地址的主機連接

114.115.166.%

cqh

cqh,從144.155.166C類子網的任何主機連接

可能大家會有這樣的疑問,如果權限表中的Host既有“cqh.loc.gov”,又有“%”,而此時,連接從主機cqh.loc.gov過來。顯然,user表里面這兩條記錄都符合匹配條件,那系統會選擇哪一個呢?

如果有多個匹配,服務器必須選擇使用哪個條目。按照下述原則來解決:

服務器在啟動時讀入user表后進行排序;

然后當用戶試圖連接時,以排序的順序瀏覽條目;

服務器使用與客戶端和用戶名匹配的第一行。

當服務器讀取表時,它首先以最具體的Host值排序。主機名和IP號是具體的。“%”意味著“任何主機”并且是最不特定的。有相同Host值的條目首先以最具體的User值排序(空User值意味著“任何用戶”并且是最不特定的)。

注意:mysql數據庫的user表中host值為%或者空,表示所有外部IP都可以連接,但是不包括本地服務器local,因此,如果要包括本地服務器、必須單獨為local賦予權限。

例5:授予SUPER、PROCESS、FILE權限給用戶cqh2@%;

mysql> grant super,process,file on *.* to 'cqh2'@'%';

Query OK, 0 rows affected (0.00 sec)

因為這幾個權限都屬于管理權限,因此不能夠指定某個數據庫,on后面必須跟“*.*”,下面的語法將提示錯誤:

mysql> grant super,process,file on test.* to 'cqh2'@'%';

ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES

例6:只授予登錄權限給cqh3@localhost

mysql> grant usage on *.* to 'cqh3'@'localhost';

Query OK, 0 rows affected (0.00 sec)

mysql> exit

Bye

[root@iZ28dr6w0qvZ ~]# mysql -ucqh3

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 1640

Server version: 5.5.37-log MySQL Community Server (GPL)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;

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

| Database |

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

| information_schema |

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

1 row in set (0.00 sec)

usage權限只能用于數據庫登錄,不能執行任何操作。

直接操作權限表也可以進行權限的創建,其實GRANT操作的本質就是修改權限后進行權限的刷新,因此,GRANT比操作權限表更簡單,下面繼續以上文的例子來說明一下更新權限的用法。

創建新用戶chenqionghe,可以從任何IP進行連接,權限對test庫里的所有表進行SELECT、UPDATE、INSERT和DELETE,初始密碼為123

mysql> grant select,insert,update,delete on test.* to 'chenqionghe'@'%' identified by '123';

方式二:直接操作權限表

直接操作權限表如下:

[root@iZ28dr6w0qvZ ~]# mysql -uroot -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 1560

Server version: 5.5.37-log MySQL Community Server (GPL)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use mysql;

Database changed

mysql> insert into db (host,db,user,select_priv,insert_priv,update_priv,delete_priv) values ('%','test','chenqionghe','Y','Y','Y','Y');

Query OK, 1 row affected (0.00 sec)

mysql> flush privileges;

mysql> exit;

Bye

[root@iZ28dr6w0qvZ ~]# mysql -ucqh3

ERROR 1045 (28000): Access denied for user 'cqh3'@'localhost' (using password: NO)

[root@iZ28dr6w0qvZ ~]# mysql -ucqh3 -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 1643

Server version: 5.5.37-log MySQL Community Server (GPL)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;

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

| Database |

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

| information_schema |

| test |

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

2 rows in set (0.00 sec)

查看和更改賬號的權限

創建完賬號后,時間長了可能就會忘記分配的權限而需要查看賬號權限,也在可能會經過一段時間后需要更改以前的賬號權限,下面介紹查看和更改這兩種操作命令。

查看權限

賬號創建好后,可以通過如下命令查看權限;

show grants for user@host;

如以下示例

mysql> show grants for cqh@localhost;

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

| Grants for cqh@localhost |

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

| GRANT ALL PRIVILEGES ON *.* TO 'cqh'@'localhost' IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257' WITH GRANT OPTION |

| GRANT SELECT ON `test`.* TO 'cqh'@'localhost' |

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

2 rows in set (0.00 sec)

host可以不寫,默認是“%”,如下所示

mysql> show grants for chenqionghe;

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

| Grants for chenqionghe@% |

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

| GRANT USAGE ON *.* TO 'chenqionghe'@'%' IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257' |

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

1 row in set (0.00 sec)

對于MySQL5.0以后的版本,也可以利用新新增的information_schema數據庫進行權限的查看;

mysql> select * from SCHEMA_PRIVILEGES where grantee="'cqh'@'localhost'";

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

| GRANTEE | TABLE_CATALOG | TABLE_SCHEMA | PRIVILEGE_TYPE | IS_GRANTABLE |

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

| 'cqh'@'localhost' | def | test | SELECT | NO |

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

1 row in set (0.00 sec)

更改權限

可以進行權限的新增和回收。和賬號創建一樣,權限變更也在兩種辦法:使用GRANT(新增)和REVOKE(回收)語句,或者更改權限表。

第二種方法和前面一樣,直接對user、db、tables_priv和columns_priv中的權限進行更新即可,這里重點介紹第一種方法。

和創建賬號的語法完全一樣,GRANT可以直接用來對賬號進行增加。其實GRANT語句在執行的時候,如果權限表中不存在目標賬號,則創建賬號;如果已經存在,則執行權限的新增。來看下面一個例子。

(1)cqh3@localhost目前只有登錄的權限。

mysql> show grants for cqh3@localhost;

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

| Grants for cqh3@localhost |

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

| GRANT USAGE ON *.* TO 'cqh3'@'localhost' |

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

1 row in set (0.00 sec)

(2)賦予cqh3@localhost所有數據庫上的所有表的SELECT權限。

mysql> grant select on *.* to 'cqh3'@'localhost';

Query OK, 0 rows affected (0.00 sec)

mysql> show grants for cqh3@localhost;

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

| Grants for cqh3@localhost |

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

| GRANT SELECT ON *.* TO 'cqh3'@'localhost' |

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

1 row in set (0.00 sec)

(3)繼續給cqh3@localhost賦予SELECT和INSERT權限,和已胡的SELECT權限進行合并。

mysql> show grants for cqh3@localhost;

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

| Grants for cqh3@localhost |

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

| GRANT SELECT ON *.* TO 'cqh3'@'localhost' |

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

1 row in set (0.00 sec)

mysql> grant select,insert on *.* to 'cqh3'@'localhost';

Query OK, 0 rows affected (0.00 sec)

mysql> show grants for cqh3@localhost;

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

| Grants for cqh3@localhost |

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

| GRANT SELECT, INSERT ON *.* TO 'cqh3'@'localhost' |

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

1 row in set (0.00 sec)

(4)REVOKE語句可以回收已經賦予的權限,語法如下:

REVOKE

priv_type [(column_list)]

[, priv_type [(column_list)]] ...

ON [object_type] priv_level

FROM user [, user] ...

REVOKE ALL PRIVILEGES, GRANT OPTION

FROM user [, user] ...

REVOKE PROXY ON user

FROM user [, user] ...

對于上面的例子,這里決定要收回cqh3@localhost上的INSERT和SELECT權限:

mysql> revoke select,insert on *.* from cqh3@localhost;

Query OK, 0 rows affected (0.00 sec)

mysql> show grants for cqh3@localhost;

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

| Grants for cqh3@localhost |

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

| GRANT USAGE ON *.* TO 'cqh3'@'localhost' |

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

1 row in set (0.00 sec)

usage權限不能被回收,也就是說,REVOKE用戶并不能刪除用戶。

mysql> show grants for cqh3@localhost;

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

| Grants for cqh3@localhost |

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

| GRANT USAGE ON *.* TO 'cqh3'@'localhost' |

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

1 row in set (0.00 sec)

mysql> revoke usage on *.* from cqh@localhost;

Query OK, 0 rows affected (0.00 sec)

mysql> show grants for cqh3@localhost;

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

| Grants for cqh3@localhost |

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

| GRANT USAGE ON *.* TO 'cqh3'@'localhost' |

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

1 row in set (0.00 sec)

修改密碼

方法1:可以用mysqladmin命令在命令行指定密碼。

shell> mysqladmin -u user_name -h host_name password "newpwd"

方法2:執行SET PASSWORD語句。下例中將賬號'chenqionghe'@'%'的密碼改為“cqh123”

SET PASSWORD FOR 'chenqionghe'@'%' = PASSWORD('cqh123');

如果是更改自己的密碼,可以省略for語句:

SET PASSWORD = PASSWORD('cqh123');

方法3:還可以在全局級別使用GRANT USAGE語句(在*.*)來指定某個賬戶的密碼而不影響賬戶當前的權限。

GRANT USAGE ON *.* TO 'chenqionghe'@'%' IDENTIFIED BY 'cqh123';

方法4:直接更改數據庫的user表。

mysql> INSERT INTO user (Host,User,Password) VALUES('%','chenqionghe',PASSWORD('333333'));

mysql> FLUSH PRIVILEGES;

mysql> UPDATE user SET Password = PASSWORD('333333') WHERE Host='%' AND User='chenqionghe';

mysql> FLUSH PRIVILEGES;

注意:更改密碼的時候一定要使用PASSWORD函數(mysqladmin和GRANT兩種方式不用寫,會自動加上)。

刪除賬號

要徹底刪除賬號,同樣也有兩種方法:DROP USER命令和修改權限表。

DROP USER語法非常簡單,具體如下:

DROP USER user [, user] ...

舉一個單的例子,將cqh3@localhost用戶刪除

mysql> show grants for cqh3@localhost;

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

| Grants for cqh3@localhost |

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

| GRANT USAGE ON *.* TO 'cqh3'@'localhost' |

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

1 row in set (0.00 sec)

mysql> drop user cqh3@localhost;

Query OK, 0 rows affected (0.00 sec)

mysql> show grants for cqh3@localhost;

ERROR 1141 (42000): There is no such grant defined for user 'cqh3' on host 'localhost'

修改權限表方法只要把user用戶中的用戶記錄刪除即可,這里不再演示

把衣缽都傳給你們了,別忘了點個贊哦~

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的mysql的本地id可以随便设置马_MySQL中的账号与权限管理的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 麻豆av网站 | 中文字幕国产精品 | 91黄在线看 | 久久爰| 中文字幕乱码人妻无码久久 | 操极品少妇 | 日韩中文字幕网站 | 四虎影视免费永久观看在线 | 免费插插视频 | 91久久一区二区三区 | 国产毛片一区二区 | 亚洲一区小说 | www.欧美一区二区三区 | 亚洲美女在线视频 | 成人午夜网址 | 黑人极品ⅴideos精品欧美棵 | 一级黄色片免费在线观看 | 婷婷国产视频 | 女人下面喷水视频 | 色网在线视频 | 光棍影院一区二区 | 三级视频在线 | 亚洲色婷婷一区二区三区 | 国产小视频在线观看 | 中文在线а√在线 | 少妇户外露出[11p] | 五月网婷婷 | 青青久在线视频 | 欧美成人hd| 自拍偷拍亚洲天堂 | chinese中国性按摩hd | 波多野结衣日韩 | 久久精品国产视频 | 三级一区二区 | 黄色一级在线视频 | 国产精品麻豆成人av电影艾秋 | 懂色一区二区二区av免费观看 | 成人性视频网 | 亚洲成年网站 | 国产不卡网 | 国产精品又黄又爽又色无遮挡 | 亚洲伦理影院 | 色啦啦视频 | 天天干天天玩 | 免费观看日批视频 | 中文字字幕在线中文乱码电影 | 无码一区二区波多野结衣播放搜索 | 欧美肉丝袜videos办公室 | 欧亚一区二区 | 国产精品1区2区3区4区 | 黑人操中国女人视频 | 91久久精 | 欧美乱色 | aaaa一级片 | 四虎毛片| 国产毛片a | 欧美xo影院 | 日韩毛片在线看 | 日日射日日干 | 中文字幕一区二区三区四区欧美 | 久久久久久久久艹 | 四季av在线一区二区三区 | 欧美一区二区三区成人久久片 | 国产在线拍揄自揄拍 | 韩国av一区二区 | 在线观看的毛片 | 亚洲一二三四在线观看 | 亚洲乱码国产乱码精品精的特点 | 国内毛片毛片 | 亚洲国产精品激情在线观看 | 我和公激情中文字幕 | 精品日本一区二区三区 | 一级黄色片视频 | 欧美激情一区二区 | av中文字幕在线免费观看 | 777中文字幕| 亚洲天堂2024 | 吊侵犯の奶水授乳羞羞漫画 | 成人gav| 老头吃奶性行交 | 免费高清视频一区二区三区 | 午夜人体视频 | 国产乡下妇女做爰毛片 | 在线观看国产免费av | 手机看片一区 | 桃色av网站| 日本一区二区高清视频 | 一区二区在线观看免费视频 | 国产欧美日韩综合精品 | 后宫秀女调教(高h,np) | 狠狠干香蕉| 国产片淫乱18一级毛片动态图 | 操女人视频网站 | 狠狠的色| 男人靠女人免费视频网站 | 在线观看免费高清 | 看特级毛片| a√天堂在线 | 香蕉久热 |