文章目錄
- 1. 訪問控制
- 2. 管理用戶
- 2.1 創建用戶賬號
- 2.2 洗掉用戶賬號
- 2.3 設定訪問權限
- 2.4 更改口令
1. 訪問控制
訪問控制:給用戶提供他們所需的訪問權,且僅提供他們所需的訪問權,
管理訪問控制需要創建和管理用戶賬號,
MySQL創建一個名為root的用戶賬號,它對整個MySQL服務器具有完全的控制,應該嚴肅對待root登錄的使用,僅在絕對需要時使用它(或許在你不能登錄其他管理賬號時使用),不應該在日常的MySQL操作中使用root,
2. 管理用戶
MySQL用戶賬號和資訊存盤在名為mysql的MySQL資料庫中,一般不需要直接訪問mysql資料庫和表,但有時需要直接訪問,需要直接訪問它的時機之一是在需要獲得所有用戶賬號串列時,如下:

分析:mysql資料庫有一個名為user的表,它包含所有用戶賬號,user表有一個名為user的列,它存盤用戶登錄名,
2.1 創建用戶賬號
為了創建一個新用戶賬號,使用create user陳述句:

分析:在創建用戶賬號時不一定需要口令,不過這個例子用IDENTIFIED BY 'p@$$wOrd’給出了一個口令,
為重新命名一個用戶賬號,使用rename user陳述句:

2.2 洗掉用戶賬號
為了洗掉一個用戶賬號(以及相關的權限),使用drop user陳述句:

2.3 設定訪問權限
為看到賦予用戶賬號的權限,使用show grants for陳述句:

分析:輸出結果顯示用戶bforta有一個權限USAGE ON .,USAGE表示根本沒有權限,所以,此結果表示在任意資料庫和任意表上對任何東西沒有權限,
為設定權限,使用grant陳述句,grant要求你至少給出以下資訊:
- 要授予的權限;
- 被授予訪問權限的資料庫或表;
- 用戶名,

分析:此grant允許用戶在crashcourse.*(crashcourse資料庫的所有表)上使用select,通過只授予select訪問權限,用戶bforta對crashcourse資料庫中的所有資料具有只讀訪問權限,
grant的反操作為revoke,用它來撤銷特定的權限,

grant和revoke可在幾個層次上控制訪問權限:
- 整個服務器,使用grant all和revoke all;
- 整個資料庫,使用on database.*;
- 特定的表,使用on database.table;
- 特定的列;
- 特定的存盤程序,
使用grant和revoke可以授予或撤銷的每個權限如下表:



可通過列出各權限并用逗號分隔,將多條grant陳述句串在一起,如下所示:

2.4 更改口令
為了更改用戶口令,可使用set password陳述句:

分析:set password更新用戶口令,新口令必須傳遞到password()函式進行加密,
在不指定用戶名時,set password更新當前登錄用戶的口令,

USE mysql;
SELECT USER FROM USER;
-- 創建一個新用戶賬號
CREATE USER ben IDENTIFIED BY 'p@$$wOrd';
SELECT USER FROM USER;
-- 重新命名一個用戶賬號
RENAME USER ben TO bforta;
-- 洗掉一個用戶賬號(以及相關的權限
DROP USER bforta;
-- 為了看到賦予用戶賬號的權限
SHOW GRANTS FOR bforta;
-- grant的用法
GRANT SELECT ON crashcourse.* TO bforta;
SHOW GRANTS FOR bforta;
-- revoke用來撤銷特定的權限
REVOKE SELECT ON crashcourse.* FROM bforta;
-- 可通過列出各權限并用逗號分隔,將多條grant陳述句串在一起:
GRANT SELECT, INSERT ON crashcourse.* TO bforta;
-- 新口令加密
SET PASSWORD FOR bforta = PASSWORD ('n3w p@$$wOrd');
-- 在不指定用戶名時,SET PASSWORD更新當前登錄用戶的口令
SET PASSWORD = PASSWORD ('n3w p@$$wOrd');
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/172909.html
標籤:其他
