标签:mysql permissions create-table grant
我有一个在一些用户之间共享的数据库,我想管理他们对此的权限.
我想授予创建新表的权限,以及访问(选择,插入,更新,删除)到该表的权限,对于没有数据库完全权限的用户(只有他对某些表具有SELECT权限) ).
所以,我执行了这个查询:
GRANT CREATE ON eh1 TO user1
然后,当我使用该用户登录并尝试创建新表时,我收到此错误:
1142 – CREATE command denied to user ‘user1’@’localhost’ for table ‘folan’
这里有什么问题?我怎样才能做到这一点?
UPDATE
通过将命令更改为:
授予创建eh1.*至user1
现在还有另一个问题,即user1无法选择或插入新创建的表中.原因是可以理解的,但有没有办法解决这个问题?
谢谢
解决方法:
按以下方式使用 –
GRANT CREATE ON eh1.* TO user1@'%' IDENTIFIED BY 'user1_password';
注意:’%’将提供来自所有ips的访问权限,因此我们应该提供特定ip而不是所有ips的权限,因此使用任何ip更改’%’,例如’191.161.3.1′
如果用户需要选择/插入/更新/删除/创建权限,则语法将为 –
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE ON eh1.* TO user1@'%' IDENTIFIED BY 'user1_password';
根据用户要求更新:
GRANT CREATE ON eh1.* TO user1@'%' IDENTIFIED BY 'user1_password';
GRANT SELECT, INSERT, UPDATE ON eh1.table1 TO user1@'%';
GRANT SELECT, INSERT, UPDATE ON eh1.table2 TO user1@'%';
标签:mysql,permissions,create-table,grant 来源: https://codeday.me/bug/20190519/1136787.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。