开发者社区> 问答> 正文

授予数据库“所有”特权

我已经创建了数据库,例如'mydb'。

CREATE DATABASE mydb CHARACTER SET utf8 COLLATE utf8_bin; CREATE USER 'myuser'@'%' IDENTIFIED BY PASSWORD 'HASH'; GRANT ALL ON mydb. TO 'myuser'@'%'; GRANT ALL ON mydb TO 'myuser'@'%'; GRANT CREATE ON mydb TO 'myuser'@'%'; FLUSH PRIVILEGES; 现在,我可以从任何地方登录数据库,但是无法创建表。

如何授予该数据库和(将来)表的所有特权。我无法在“ mydb”数据库中创建表。我总是得到:

CREATE TABLE t (c CHAR(20) CHARACTER SET utf8 COLLATE utf8_bin); ERROR 1142 (42000): CREATE command denied to user 'myuser'@'...' for table 't'

展开
收起
保持可爱mmm 2020-05-10 19:25:39 455 0
1 条回答
写回答
取消 提交回答
  • GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'%' WITH GRANT OPTION; 这就是我创建“超级用户”特权的方式(尽管我通常会指定一个主机)。

    重要的提示 虽然此答案可以解决访问问题,但可以WITH GRANT OPTION创建一个MySQL用户,该用户可以编辑其他用户的权限。

    使用GRANT OPTION特权,您可以授予其他用户或从其他用户中删除您自己拥有的那些特权。

    出于安全原因,您不应将此类用户帐户用于公众可以访问的任何过程(即网站)。建议您为这种使用创建仅具有数据库特权的用户。来源:stack overflow

    2020-05-10 19:25:52
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
数据库2025 V3 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载

相关实验场景

更多