mysql資料庫授權

2021-08-30 09:21:18 字數 2689 閱讀 9166

授權命令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 [email protected] 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"

以上是我從別的地方拷貝過來後稍作修改的文字,下面自己寫一些需要注意的東西。

為什麼使用了grant all on db.* to user identified by "pass"後,在主機上訪問資料庫還會出現error 1045 (28000): access denied for user 'user'@'localhost' (using password: yes) 的錯誤提示?

解答方法如下:執行命令 grant all on db.* to 'user'@'localhost' identified by "pass"

原因是:當不加@選項時,效果與加@'%'是一樣的,'%'從名義上包括任何主機,(%必須加上引號,不然與@放在一起可能不會被辨認出。)不過有些時候(有些版本)'%'不包括localhost,要單獨對@'localhost'進行賦值

Mysql資料庫的grant授權

mysql 賦予使用者許可權命令的簡單格式可概括為 grant 許可權 on 資料庫物件 to 使用者 一 grant 普通資料使用者,查詢 插入 更新 刪除 資料庫中所有表資料的權利。grant select on testdb.to common user grant insert on tes...

mysql資料庫授權命令 題型

在資料庫伺服器192.168.4.50上做如下 1 修改資料庫管理員從本機登入的密碼為plj666,資料庫管理員使用新密碼從本機連線資料庫伺服器 mysql alter user root localhost identified by plj666 2 檢視當前登陸資料庫伺服器的使用者是誰 mys...

遠端連線MySQL資料庫與資料庫授權

我們在剛學習mysql資料庫時一般都是連線localhost然後登入root使用者建立資料庫進行操作,那麼問題來了,如何通過其他主機來訪問自己的資料庫呢?一 我們要保證兩台主機在同乙個區域網,也就是說你使用ping命令能夠ping通另一台主機,這樣才可以實現遠端訪問你的資料庫 圖中192.168.1...