Mysql使用者密碼設定修改和許可權分配

2021-08-25 12:21:20 字數 1553 閱讀 5770

你可以授權不同級別的許可權,全域性許可權是最強大的,因為它們適用於任何資料庫。要使ethel 成為可做任何事情的超級使用者,包括能授權給其它使用者,發出下列語句:

grant all on *.* to ethel@localhost identified by "coffee" with grant option

on子句中的*.*意味著「所有資料庫、所有表」。從安全考慮,我們指定ethel只能從本地連線。限制乙個超級使用者可以連線的主機通常是明智的,因為它限制了試圖破解口令的主機。

有些許可權(file、process、reload和shutdown)是管理許可權並且只能用"on *.*"全域性許可權指定符授權。如果你願意,你可以授權這些許可權,而不授權資料庫許可權。例如,下列語句設定乙個flush使用者,他只能發出flush語句。 這可能在你需要執行諸如清空日誌等的管理指令碼中會有用:

grant reload on *.* to flushl@localhost identified by "flushpass"

一般地,你想授權管理許可權,吝嗇點,因為擁有它們的使用者可以影響你的伺服器的操作。

資料庫級許可權適用於乙個特定資料庫中的所有表,它們可通過使用on db_name.*子句授予:

grant all on samp_db to [email protected] indetified by "rock" grant select on samp_db to ro_user@% indetified by "rock"

第一條語句向bill授權samp_db資料庫中所有表的許可權,第二條建立乙個嚴格限制訪問的使用者ro_user(唯讀使用者),只能訪問samp_db資料庫中的所有表,但只有讀取,即使用者只能發出 select語句。

你可以列出一系列同時授予的各個許可權。例如,如果你想讓使用者能讀取並能修改現有資料庫的內容,但不能建立新錶或刪除表,如下授予這些許可權:

grant select,insert,delete,update on samp_db to [email protected] indetified by "rock"

對於更精緻的訪問控制,你可以在各個表上授權,或甚至在表的每個列上。當你想向使用者隱藏乙個表的部分時,或你想讓乙個使用者只能修改特定的列時,列特定許可權非常有用。如:

grant select on samp_db.member to bill@localhost indetified by "rock"

grant update (expiration) on samp_db. member to bill@localhost

第一條語句授予對整個member表的讀許可權並設定了乙個口令,第二條語句增加了update許可權,當只對expiration列。沒必要再指定口令,因為第一條語句已經指定了。

如果你想對多個列授予許可權,指定乙個用逗號分開的列表。例如,對assistant使用者增加member表的位址欄位的update許可權,使用如下語句,新許可權將加到使用者已有的許可權中:

grant update (street,city,state,zip) on samp_db to assistant@localhost

1.3 使用者應該被允許管理許可權嗎?

mysql密碼修改及使用者設定

本文主要參考了mysql管理 菜鳥教程。1.修改root密碼 在知道root密碼時,可以使用 alter user root localhost identified by 123456 指令來修改root使用者的密碼。2.mysql使用者設定 如果你需要新增mysql使用者,你需要在mysql資料...

mysql建立使用者和修改密碼

mysql select user,host from mysql.user user host root 127.0.0.1 root 1 root localhost 3 rows in set 0.00 sec mysql create user time localhost identifi...

mysql密碼的修改和設定

已經改了不知道多少次密碼了,改一次查一次,這次好好記錄下來。修改root密碼 mysql 管理員帳號預設是 root 使用者,密碼是原密碼,阿里雲給了預設的密碼。如果你從沒設定過 mysql 的密碼,使用 root 使用者來連線 mysql 伺服器不需要輸入密碼。第一次設定root密碼可以使用以下命...