我正在使用: ubuntu 14.04.1 上的 mysql 5.5.43-0
我嘗試建立一個新的管理員使用者(admin),允許他執行以下操作:
- 使用密碼建立新使用者(dbuser1)-(權限「建立使用者」->有效)
- b 為新建立的使用者設定密碼 - (權限「在表 mysql.user 上插入/更新」 -> 有效)
- c 授予所有表格的使用權 - (GRANT USAGE ON。TO 'dbuser1'@'localhost' 標識為 ... -> 有效)
- d 建立新資料庫(db4user1)-(權限「建立」-> 有效)
- e 授予所有權限 - (GRANT ALL PRIVILEGES ON
db4user1
.* TO 'dbuser1'@'localhost';) - (admin 權限授予 -> 不起作用)
我在步驟 e 時遇到了問題。
Mysql 顯示以下錯誤:#1044 - 使用者「admin」@「localhost」存取資料庫「db4user1」被拒絕
問題:我的管理員需要哪些額外的權限/特權才能執行上述操作,僅此而已。
我認為我的管理員用戶擁有將現有用戶授予新建立的資料庫的所有權限...
但這沒有用。
感謝您的協助
史蒂芬
CREATE USER 'dbuser1'@'localhost' IDENTIFIED BY 'password1234'
SET PASSWORD FOR 'dbuser1'@'localhost' = PASSWORD('password5678')
GRANT USAGE ON *.* TO 'dbuser1'@'localhost' IDENTIFIED BY 'password5678' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
CREATE DATABASE IF NOT EXISTS `db4user1`;
GRANT ALL PRIVILEGES ON `db4user1`.* TO 'dbuser1'@'localhost';
-> #1044 - 使用者「admin」@「localhost」存取資料庫「db4user1」被拒絕
答案1
在我看來,您只想建立另一個像 default 這樣的管理員root
,因此您可以使用如下簡單的語法:
GRANT ALL ON *.* TO admin@localhost IDENTIFIED BY 'passwd5678' WITH GRANT OPTION;
答案2
向給定使用者(admin
此處)授予足夠權限以便能夠授予給定資料庫(db4user1
此處)的所有權限的最低要求是:
GRANT DROP ,
REFERENCES ,
INDEX ,
ALTER ,
CREATE TEMPORARY TABLES ,
LOCK TABLES ,
CREATE VIEW ,
EVENT,
TRIGGER,
SHOW VIEW ,
CREATE ROUTINE,
ALTER ROUTINE,
EXECUTE ON `db4user1` . * TO 'admin'@'localhost' WITH GRANT OPTION ;
幾乎所有...除了:
Create
(結構範圍)Select
,Insert
,Update
,Delete
(資料範圍)
從這裡開始,使用admin
使用者:
mysql> GRANT ALL PRIVILEGES ON db4user1.* TO 'dbuser1'@'localhost';
Query OK, 0 rows affected (0.00 sec)
我承認我沒有找到任何相關文件。過去,我花了很多時間通過排除法,一一測試所有可能性…