![](/img/trans.png)
[英]I Want to create a MySql database in a docker container and execute few DDL and DML Statements in it while the container is starting up
[英]How to grant only few previleges ( to execute only DML and DDL statements) to the new user in MySQL?
如何在 MySQL 中僅向新用戶授予少數特權(僅執行 DML 和 DDL 語句)?
我嘗試了以下命令:
GRANT CREATE, ALTER, DROP, SELECT, INSERT, UPDATE, DELETE ON database.* to 'karthik' identified by 'shimoga';
但是,它顯示語法錯誤。
您需要從您的聲明中刪除“shimoga”標識。
創建用戶:
CREATE USER 'karthik'@'instance' IDENTIFIED BY 'Password';
然后授予特權:
GRANT SELECT, DELETE, UPDATE, EXECUTE, INSERT, DROP, ALTER, CREATE ON databaseName.* TO 'karthik'@'instancename';
更好的解決方案是創建一個角色。 並將角色分配給用戶。 如果您有許多需要類似權限的用戶,這將使您的工作更輕松。
首先創建一個角色:
CREATE ROLE IF NOT EXISTS 'Developer'@'localhost';
然后將所需的權限分配給角色。
GRANT SELECT, DELETE, UPDATE, EXECUTE, INSERT, DROP, ALTER ON databaseName.* TO 'Developer'@'instanceName';
最后將角色分配給您已經創建的用戶:
GRANT 'Developer'@'localhost' TO 'karthik'@'instanceName';
SET DEFAULT ROLE ALL TO 'karthik'@'instanceName';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.