91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

MySQL權限管理簡介

發布時間:2021-09-15 17:48:33 來源:億速云 閱讀:160 作者:chen 欄目:MySQL數據庫

本篇內容主要講解“MySQL權限管理簡介”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“MySQL權限管理簡介”吧!

一、MySQL權限簡介

    關于mysql的權限簡單的理解就是mysql允許你做你全力以內的事情,不可以越界。比如只允許你執行select操作,那么你就不能執行update操作。只允許你從某臺機器上連接mysql,那么你就不能從除那臺機器以外的其他機器連接mysql。

    那么Mysql的權限是如何實現的呢?這就要說到mysql的兩階段驗證,下面詳細介紹:第一階段:服務器首先會檢查你是否允許連接。因為創建用戶的時候會加上主機限制,可以限制成本地、某個IP、某個IP段、以及任何地方等,只允許你從配置的指定地方登陸。第二階段:如果你能連接,Mysql會檢查你發出的每個請求,看你是否有足夠的權限實施它。比如你要更新某個表、或者查詢某個表,Mysql會查看你對哪個表或者某個列是否有權限。再比如,你要運行某個存儲過程,Mysql會檢查你對存儲過程是否有執行權限等。

    MYSQL到底都有哪些權限呢?從官網復制一個表來看看:

權限

權限級別

權限說明

CREATE

數據庫、表或索引

創建數據庫、表或索引權限

DROP

數據庫或表

刪除數據庫或表權限

GRANT OPTION

數據庫、表或保存的程序

賦予權限選項

REFERENCES

數據庫或表

 

ALTER

更改表,比如添加字段、索引等

DELETE

刪除數據權限

INDEX

索引權限

INSERT

插入權限

SELECT

查詢權限

UPDATE

更新權限

CREATE VIEW

視圖

創建視圖權限

SHOW VIEW

視圖

查看視圖權限

ALTER ROUTINE

存儲過程

更改存儲過程權限

CREATE ROUTINE

存儲過程

創建存儲過程權限

EXECUTE

存儲過程

執行存儲過程權限

FILE

服務器主機上的文件訪問

文件訪問權限

CREATE TEMPORARY TABLES

服務器管理

創建臨時表權限

LOCK TABLES

服務器管理

鎖表權限

CREATE USER

服務器管理

創建用戶權限

PROCESS

服務器管理

查看進程權限

RELOAD

 

 

服務器管理

執行flush-hosts, flush-logs, flush-privileges, flush-status, flush-tables, flush-threads, refresh, reload等命令的權限

REPLICATION CLIENT

服務器管理

復制權限

REPLICATION SLAVE

服務器管理

復制權限

SHOW DATABASES

服務器管理

查看數據庫權限

SHUTDOWN

服務器管理

關閉數據庫權限

SUPER

服務器管理

執行kill線程權限

    MYSQL的權限如何分布,就是針對表可以設置什么權限,針對列可以設置什么權限等等,這個可以從官方文檔中的一個表來說明:

權限分布

可能的設置的權限

表權限

'Select', 'Insert', 'Update', 'Delete', 'Create', 'Drop', 'Grant', 'References', 'Index', 'Alter'

列權限

'Select', 'Insert', 'Update', 'References'

過程權限

'Execute', 'Alter Routine', 'Grant'

 二、MySQL權限經驗原則:

    權限控制主要是出于安全因素,因此需要遵循一下幾個經驗原則:

    1、只授予能滿足需要的最小權限,防止用戶干壞事。比如用戶只是需要查詢,那就只給select權限就可以了,不要給用戶賦予update、insert或者delete權限。

    2、創建用戶的時候限制用戶的登錄主機,一般是限制成指定IP或者內網IP段。

    3、初始化數據庫的時候刪除沒有密碼的用戶。安裝完數據庫的時候會自動創建一些用戶,這些用戶默認沒有密碼。

    4、為每個用戶設置滿足密碼復雜度的密碼。

    5、定期清理不需要的用戶。回收權限或者刪除用戶。

三、MySQL權限實戰:

    1、GRANT命令使用說明:

    先來看一個例子,創建一個只允許從本地登錄的超級用戶jack,并允許將權限賦予別的用戶,密碼為:jack.

mysql> grant all privileges on *.* to jack@'localhost' identified by "jack" with grant option;
Query OK, 0 rows affected (0.01 sec)

    GRANT命令說明:
    ALL PRIVILEGES 是表示所有權限,你也可以使用select、update等權限。

    ON 用來指定權限針對哪些庫和表。

    *.* 中前面的*號用來指定數據庫名,后面的*號用來指定表名。

    TO 表示將權限賦予某個用戶。

    jack@'localhost' 表示jack用戶,@后面接限制的主機,可以是IP、IP段、域名以及%,%表示任何地方。注意:這里%有的版本不包括本地,以前碰到過給某個用戶設置了%允許任何地方登錄,但是在本地登錄不了,這個和版本有關系,遇到這個問題再加一個localhost的用戶就可以了。

    IDENTIFIED BY 指定用戶的登錄密碼。

    WITH GRANT OPTION 這個選項表示該用戶可以將自己擁有的權限授權給別人。注意:經常有人在創建操作用戶的時候不指定WITH GRANT OPTION選項導致后來該用戶不能使用GRANT命令創建用戶或者給其它用戶授權。

備注:可以使用GRANT重復給用戶添加權限,權限疊加,比如你先給用戶添加一個select權限,然后又給用戶添加一個insert權限,那么該用戶就同時擁有了select和insert權限。

    2、刷新權限

    使用這個命令使權限生效,尤其是你對那些權限表user、db、host等做了update或者delete更新的時候。以前遇到過使用grant后權限沒有更新的情況,只要對權限做了更改就使用FLUSH PRIVILEGES命令來刷新權限。

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

    3、查看權限

MySQL權限管理簡介

查看當前用戶的權限:
mysql> show grants; +---------------------------------------------------------------------+ | Grants for root@localhost | +---------------------------------------------------------------------+ | GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION | | GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION | +---------------------------------------------------------------------+ 2 rows in set (0.00 sec)

查看某個用戶的權限:
mysql> show grants for 'jack'@'%'; +-----------------------------------------------------------------------------------------------------+ | Grants for jack@% | +-----------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'jack'@'%' IDENTIFIED BY PASSWORD '*9BCDC990E611B8D852EFAF1E3919AB6AC8C8A9F0' | +-----------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)

MySQL權限管理簡介

    4、回收權限

mysql> revoke delete on *.* from 'jack'@'localhost';
Query OK, 0 rows affected (0.01 sec)

    5、刪除用戶

MySQL權限管理簡介

mysql> select host,user,password from user; +-----------+------+-------------------------------------------+ | host | user | password | +-----------+------+-------------------------------------------+ | localhost | root | | | rhel5.4 | root | | | 127.0.0.1 | root | | | ::1 | root | | | localhost | | | | rhel5.4 | | | | localhost | jack | *9BCDC990E611B8D852EFAF1E3919AB6AC8C8A9F0 | +-----------+------+-------------------------------------------+ 7 rows in set (0.00 sec)

mysql> drop user 'jack'@'localhost';
Query OK, 0 rows affected (0.01 sec)

MySQL權限管理簡介

    6、對賬戶重命名

mysql> rename user 'jack'@'%' to 'jim'@'%';
Query OK, 0 rows affected (0.00 sec)

    7、修改密碼

MySQL權限管理簡介

  1、用set password命令
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
Query OK, 0 rows affected (0.00 sec) 2、用mysqladmin [root@rhel5 ~]# mysqladmin -uroot -p123456 password 1234abcd
  備注:
  格式:mysqladmin -u用戶名 -p舊密碼 password 新密碼 3、用update直接編輯user表
  mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A Database changed
mysql> update user set PASSWORD = PASSWORD('1234abcd') where user = 'root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0 mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec) 4、在丟失root密碼的時候: [root@rhel5 ~]# mysqld_safe --skip-grant-tables & [1] 15953 [root@rhel5 ~]# 130911 09:35:33 mysqld_safe Logging to '/mysql/mysql5.5/data/rhel5.4.err'. 130911 09:35:33 mysqld_safe Starting mysqld daemon with databases from /mysql/mysql5.5/data [root@rhel5 ~]# mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2 Server version: 5.5.22 Source distribution

Copyright (c) 2000, 2011, 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> \s -------------- mysql  Ver 14.14 Distrib 5.5.22, for Linux (i686) using  EditLine wrapper

Connection id: 2 Current database: Current user:        root@
SSL: Not in use Current pager:        stdout
Using outfile: '' Using delimiter:    ;
Server version: 5.5.22 Source distribution
Protocol version: 10 Connection:        Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket: /tmp/mysql.sock
Uptime: 36 sec

Threads: 1 Questions: 5 Slow queries: 0 Opens: 23 Flush tables: 1 Open tables: 18 Queries per second avg: 0.138 --------------  mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A Database changed
mysql> update user set password = PASSWORD('123456') where user = 'root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0 mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

到此,相信大家對“MySQL權限管理簡介”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

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

AI

于田县| 密云县| 敖汉旗| 山阴县| 十堰市| 平武县| 易门县| 宁乡县| 玉山县| 盐山县| 东莞市| 莫力| 旌德县| 林口县| 台山市| 沽源县| 竹溪县| 砚山县| 寿宁县| 德保县| 祥云县| 广平县| 射阳县| 镇赉县| 宜章县| 鹤壁市| 苍梧县| 长宁区| 南丰县| 乌兰浩特市| 红原县| 理塘县| 尚志市| 堆龙德庆县| 洛南县| 达孜县| 安丘市| 即墨市| 皋兰县| 安化县| 丹凤县|