php網(wǎng)站開發(fā) pdfseo顧問賺錢嗎
要授予用戶帳戶權限,可以用GRANT
命令。有撤銷用戶的權限,可以用REVOKE
命令。這里以 MySQl 為例,介紹權限控制實際應用。
GRANT
授予權限語法:
GRANT privilege,[privilege],.. ON privilege_level
TO user [IDENTIFIED BY password]
[REQUIRE tsl_option]
[WITH [GRANT_OPTION | resource_option]];
簡單解釋一下:
- 在
GRANT
關鍵字后指定一個或多個權限。如果授予用戶多個權限,則每個權限由逗號分隔。 ON privilege_level
確定權限應用級別。MySQL 支持 global(*.*
),database(database.*
),table(database.table
)和列級別。如果使用列權限級別,則必須在每個權限之后指定一個或逗號分隔列的列表。user
是要授予權限的用戶。如果用戶已存在,則GRANT
語句將修改其權限。否則,GRANT
語句將創(chuàng)建一個新用戶。可選子句IDENTIFIED BY
允許您為用戶設置新的密碼。REQUIRE tsl_option
指定用戶是否必須通過 SSL,X059 等安全連接連接到數(shù)據(jù)庫服務器。- 可選
WITH GRANT OPTION
子句允許您授予其他用戶或從其他用戶中刪除您擁有的權限。此外,您可以使用WITH
子句分配 MySQL 數(shù)據(jù)庫服務器的資源,例如,設置用戶每小時可以使用的連接數(shù)或語句數(shù)。這在 MySQL 共享托管等共享環(huán)境中非常有用。
REVOKE
撤銷權限語法:
REVOKE privilege_type [(column_list)][, priv_type [(column_list)]]...
ON [object_type] privilege_level
FROM user [, user]...
簡單解釋一下:
- 在
REVOKE
關鍵字后面指定要從用戶撤消的權限列表。您需要用逗號分隔權限。 - 指定在
ON
子句中撤銷特權的特權級別。 - 指定要撤消
FROM
子句中的權限的用戶帳戶。
GRANT
和 REVOKE
可在幾個層次上控制訪問權限:
- 整個服務器,使用
GRANT ALL
和REVOKE ALL
; - 整個數(shù)據(jù)庫,使用
ON database.*
; - 特定的表,使用
ON database.table
; - 特定的列;
- 特定的存儲過程。
新創(chuàng)建的賬戶沒有任何權限。賬戶用 username@host
的形式定義,username@%
使用的是默認主機名。MySQL 的賬戶信息保存在 mysql 這個數(shù)據(jù)庫中。
USE mysql;
SELECT user FROM user;
下表說明了可用于GRANT
和REVOKE
語句的所有允許權限:?
創(chuàng)建賬戶
CREATE USER myuser IDENTIFIED BY 'mypassword';
修改賬戶名
UPDATE user SET user='newuser' WHERE user='myuser';
FLUSH PRIVILEGES;-- 重命名 RENAME USER 原來名字 TO 新的名字
RENAME USER bing1 TO bing2
刪除賬戶
DROP USER myuser;
查看權限
SHOW GRANTS FOR myuser;
授予權限
GRANT SELECT, INSERT ON *.* TO myuser;-- 用戶授權ALL PRIVILEGES全部權限,庫,表
-- ALL PRIVILEGES除了給別人授權,其他都能夠干
GRANT ALL PRIVILEGES ON *.* TO myuser;
刪除權限
REVOKE SELECT, INSERT ON *.* FROM myuser;
更改密碼
SET PASSWORD FOR myuser = 'mypass';
?