MySql用戶權限控制 本文將介紹MySql創建帳號,刪除帳號,設置和介紹各種帳號的權限 創建用戶帳號: www.2cto.com [sql] CREATE USER user_name IDENTIFIED BY 'your_password'; 改名 [sql] RENAME USER old_name TO new_name; 刪除用戶帳號 [sql] DROP USER user_name; 查看用戶的權限可以用 www.2cto.com SHOW GRANTS FOR user_name; 如果顯示為:GRANT USAGE ON *.* TO 'user_name'@'%' 則表示無任何權限!!!! 前面一個*表示任意數據庫,後面一個表示數據庫裡的任意表 注意:用戶必須具有GRANT OPTION權限才能使用GRANT和INVOKE為別的用戶賦予或者撤銷權限 例子:賦予SELECT權限 GRANT SELECT ON testdb.* TO user_name; 表示將對testdb數據庫下的所有表的SELECT權限賦予user_name用戶. 撤銷權限: REVOKE SELECT ON testdb.* FROM user_name; 表示將用戶對testdb數據庫中所有表的SELECT權限撤銷. 可以一次寫多個如:GRANT SELECT, INSERT ON testdb.* TO user_name; MySql的權限如下表所示: ALL 除GRANT OPTION外的所有權限 ALTER 使用ALTER TABLE ALTER ROUTING 使用ALTER PROCEDURE和DROP PROCEDURE CREATE 使用CREATE TABLE CREATE ROUTING 使用CREATE PROCEDURE CREATE TEMPORARY TABLES 使用CREATE TEMPORARY TABLE CREATE USER 使用CREATE USER、DROP USER、RENAME USER和REVOKE ALL PRIVILLEAGES CREATE VIEW 使用CREATE VIEW DELETE 使用DELETE DROP 使用DROP TABLE EXECUTE 使用CALL和存儲過程 FILE 使用SELECT INTO OUTFILE和LOAD DATA INFILE GRANT OPTION 使用GRANT和REVOKE INDEX 使用CREATE INDEX和DROP INDEX INSERT 使用INSERT LOCK TABLES 使用LOCK TABLES PROCESS 使用SHOW FULL PROCESSLIST RELOAD 使用FFLUSH REPLICATION CLIENT 服務器位置的訪問 REPLICATION SLAVE 由復制從屬使用 SELECT 使用SELECT SHOW DATABASES 使用SHOW DATABASES SHOW VIEW 使用SHOW CREATE VIEW SHUTDOWN 使用mysqladmin shutdown(用來關閉MySQL) SUPER 使用CHANGE MASTER、KILL、LOGS、PURGE、MASTER和SET GLOBAL。還允許mysqladmin調試登錄 UPDATE 使用UPDATE USAGE 無訪問權限 [sql] 更改口令 SET PASSWORD FOR user_name = PASSWORD('new_password'); 或者SET PASSWORD = PASSWORD('new_password'); 這個是更改自己的口令 GRANT和REVOKE可以在幾個層次上控制訪問權限: 整個服務器,使用GRANT ALL和REVOKE ALL; 整個數據庫,使用ON database.*; 特定的表,使用ON database.table; 特定的列 ,不知道 特定的存儲過程, 不知道 補充一點, 我們在linux系統下直接輸入mysql時,會以本地匿名賬號登陸,即''@localhost 而這個賬戶一開始沒權限即USAGE *.* ,,所以很多時候操作都不成功。 這時我們如果只是學習的話,可以首先用root登陸即mysql -u root -p <CR>然後輸入root密碼(也可以沒有密碼,則不加-p) 然後GRANT ALL ON *.* FOR ''@localhost; 這樣即可。