为什么GRANT不在MySQL中工作?
当我看到大量的帮助者网站展示如何创建MySQL用户和授予特权时,我对这一点感到抓狂,但出于某种原因,它对我来说根本不起作用。我在WinXP和安装了最新MySQL版本的MacBookPro笔记本电脑上进行了尝试 下面是我使用WordPress时的一个例子。实际的数据库是一些不同但相同的问题 以下是步骤:为什么GRANT不在MySQL中工作?,mysql,grant,Mysql,Grant,当我看到大量的帮助者网站展示如何创建MySQL用户和授予特权时,我对这一点感到抓狂,但出于某种原因,它对我来说根本不起作用。我在WinXP和安装了最新MySQL版本的MacBookPro笔记本电脑上进行了尝试 下面是我使用WordPress时的一个例子。实际的数据库是一些不同但相同的问题 以下是步骤: mysql> mysql -uroot -p<password> mysql> CREATE DATABASE wwordpress; mysql> CREATE U
mysql> mysql -uroot -p<password>
mysql> CREATE DATABASE wwordpress;
mysql> CREATE USER 'www'@'localhost' IDENTIFIED BY 'basic';
查询正常,0行受影响(0.00秒)
查询正常,0行受影响(0.03秒)
*************************** 1. 划船***************************
主机:本地主机
用户:www
密码:*E85C94AF0F09C892339D31CF7570A970BCDC5805
选择_priv:N
插入_priv:N
更新:N
删除_priv:N
创建私有文件:N
投递
重新加载私有:N
关闭私有:N
过程私有:N
文件名:N
格兰特·普里夫:N
参考文献
索引:N
改变秘密
显示\u db\u priv:N
超级私人:N
创建\u tmp\u表\u priv:N
锁桌
执行
答复:N
回复客户私人:N
创建\u视图\u priv:N
显示\u视图\u priv:N
创建\u例程\u priv:N
改变例行程序
创建\u用户\u权限:N
事件名称:N
触发器(priv:N)
ssl_类型:
ssl_密码:
x509\u发行人:
x509_主题:
最多问题:0
最大更新:0
最大连接数:0
最大用户连接数:0
一行一组(0.00秒)
mysql>
如您所见,“Insert_priv:N”应该是“Y”
有什么建议吗
提前感谢。这不是存储大多数用户授权权限的地方-请尝试
SHOW GRANTS FOR 'www'@'localhost'
改为查看特定于数据库的权限。(只有针对所有数据库的授权才会显示在用户表中。)
下面是MySQL中的一个(相当古老的)逐步细节-我认为事情没有多大变化。您选择的是全局特权。 不过,您正在授予数据库(和主机,但这并不重要)特定的权限
允许在wordpress上插入由“basic”标识的“www”@“localhost”代码>
这些权限存储在db
表中
为您指出正确的方向:
SHOW GRANTS FOR 'www'@'localhost'
如果需要选择Y或N,则需要查看mysql.db或mysql.tables\u priv tables,如果您试图对用户可以编辑或插入或删除的页面进行一些限制。。。此表使用Ys和Ns自动更新,因为它们仅用于显示用户对表或列的权限,而不是mysql。其目的是显示某个用户可以登录(创建连接)到数据库。这应该可以:
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
谢谢你,马丁。不过,我想知道这张桌子是做什么用的?我认为他们应该是一致的?这里有许多显示字段应该是“Y”的链接之一:看起来RTFM是这里的答案:@Christopher-我添加了一个链接,提供了一个话语式的介绍,hth。我知道这是一个示例,但它应该是数据库\\u name
。您需要转义下划线,因为数据库名称是模式匹配。
*************************** 1. row ***************************
Host: localhost
User: www
Password: *E85C94AF0F09C892339D31CF7570A970BCDC5805
Select_priv: N
Insert_priv: N
Update_priv: N
Delete_priv: N
Create_priv: N
Drop_priv: N
Reload_priv: N
Shutdown_priv: N
Process_priv: N
File_priv: N
Grant_priv: N
References_priv: N
Index_priv: N
Alter_priv: N
Show_db_priv: N
Super_priv: N
Create_tmp_table_priv: N
Lock_tables_priv: N
Execute_priv: N
Repl_slave_priv: N
Repl_client_priv: N
Create_view_priv: N
Show_view_priv: N
Create_routine_priv: N
Alter_routine_priv: N
Create_user_priv: N
Event_priv: N
Trigger_priv: N
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
1 row in set (0.00 sec)
mysql>
SHOW GRANTS FOR 'www'@'localhost'
SHOW GRANTS FOR 'www'@'localhost'
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';