MySql建立使用者及授權

noter發表於2007-05-22
 GRANT 語句的語法如下:
    GRANT privileges (columns)
          ON what
          TO user IDENTIFIEDBY "password"
          WITH GRANT OPTION


對使用者授權
mysql>grant rights on database.* to user@host identified by "pass";

例1:
  增加一個使用者test1密碼為abc,讓他可以在任何主機上登入,並對所有資料庫有查詢、插入、修改、刪除的許可權。
   grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";

     
ON 子句中*.* 說明符的意思是“所有資料庫,所有的表”


例2:
  增加一個使用者test2密碼為abc, 讓他只可以在localhost上登入,並可以對資料庫mydb進行查詢、插入、修改、刪除的操作。
grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";


例子3
增加一個使用者custom,他能從主機localhost、server.domain和whitehouse.gov連線。他只想要從 localhost存取bankaccount資料庫,從whitehouse.gov存取expenses資料庫和從所有3臺主機存取customer 資料庫。他想要從所有3臺主機上使用口令stupid。

為了使用GRANT語句設定個使用者的許可權,執行這些命令:

shell> mysql --user=root mysql

mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
               ON bankaccount.* TO custom@localhost  IDENTIFIED BY 'stupid';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
               ON expenses.*  TO custom@whitehouse.gov IDENTIFIED BY 'stupid';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
               ON customer.* TO custom@'%'  IDENTIFIED BY 'stupid';

==============================================
許可權資訊用user、db、host、tables_priv和columns_priv表被儲存在mysql資料庫中(即在名為mysql的資料庫中)。


許可權           列                     Context
select          Select_priv         表                                     
insert          Insert_priv         表 
update        Update_priv      表
delete          Delete_priv        表
index           Index_priv        表
alter            Alter_priv           表
create         Create_priv         資料庫、表或索引
drop            Drop_priv           資料庫或表
grant           Grant_priv          資料庫或表
references   References_priv   資料庫或表
reload          Reload_priv         伺服器管理
shutdown    Shutdown_priv       伺服器管理
process         Process_priv          伺服器管理
file                 File_priv                在伺服器上的檔案存取

1.
select、insert、update和delete許可權       
 允許你在一個資料庫現有的表上實施操作,是基本許可權

2.
alter許可權允許你使用ALTER TABLE

3.
create和drop許可權允許你建立新的資料庫和表,或拋棄(刪除)現存的資料庫和表
       如果你將mysql資料庫的drop許可權授予一個使用者,該使用者能拋棄儲存了MySQL存取許可權的資料庫!

4.
grant許可權允許你把你自己擁有的那些許可權授給其他的使用者。



你不能明顯地指定一個給定使用者應該被拒絕存取。即,你不能明顯地匹配一個使用者並且然後拒絕連線。
你不能指定一個使用者有權建立立或拋棄一個資料庫中的表,也不能建立或拋棄資料庫本身。
 

 可以同時列出許多被授予的單個許可權。

例如,如果想讓使用者能讀取和修改已有表的內容,但又不允許建立新表或刪除表,可按如下授權:
    GRANT SELECT,INSERT,DELETE,UPDATE  ON samp_db.*   TO user@%
        IDENTIFIEDBY "pass" 

相關文章