我想在MySQL中创建一个新用户,并只赋予它对一个数据库的完全访问权,比如dbTest,我使用create database dbTest;这样的命令创建这个数据库。MySQL的命令是什么呢?
当前回答
尝试这样创建用户:
CREATE USER 'user'@'hostname';
尝试让它访问数据库dbTest:
GRANT ALL PRIVILEGES ON dbTest.* To 'user'@'hostname' IDENTIFIED BY 'password';
如果你在同一台机器上运行代码/站点访问MySQL,主机名应该是localhost。
现在我们来分析一下。
GRANT -该命令用于创建用户并授予数据库、表等权限。
ALL PRIVILEGES——这告诉它用户将拥有所有标准权限。但是,这并不包括使用GRANT命令的特权。
印度生物技术部。* -指示MySQL在整个dbtest数据库中应用这些权限。如果愿意,可以用特定的表名或存储例程替换*。
TO 'user'@'hostname' - 'user'是您创建的用户帐户的用户名。注意:这里必须有单引号。“hostname”告诉MySQL用户可以从哪个主机连接。如果您只想从同一台机器上获取,请使用localhost
IDENTIFIED BY 'password' -正如你已经猜到的那样,这设置了该用户的密码。
其他回答
尝试这样创建用户:
CREATE USER 'user'@'hostname';
尝试让它访问数据库dbTest:
GRANT ALL PRIVILEGES ON dbTest.* To 'user'@'hostname' IDENTIFIED BY 'password';
如果你在同一台机器上运行代码/站点访问MySQL,主机名应该是localhost。
现在我们来分析一下。
GRANT -该命令用于创建用户并授予数据库、表等权限。
ALL PRIVILEGES——这告诉它用户将拥有所有标准权限。但是,这并不包括使用GRANT命令的特权。
印度生物技术部。* -指示MySQL在整个dbtest数据库中应用这些权限。如果愿意,可以用特定的表名或存储例程替换*。
TO 'user'@'hostname' - 'user'是您创建的用户帐户的用户名。注意:这里必须有单引号。“hostname”告诉MySQL用户可以从哪个主机连接。如果您只想从同一台机器上获取,请使用localhost
IDENTIFIED BY 'password' -正如你已经猜到的那样,这设置了该用户的密码。
$ mysql -u root -p -e "grant all privileges on dbTest.* to
`{user}`@`{host}` identified by '{long-password}'; flush privileges;"
忽略-p选项,如果mysql用户没有密码或只是按“[Enter]”键旁路。需要用实际值替换花括号括起来的字符串。
如果主机部分被省略,它默认为通配符%,允许所有主机。
创建用户service-api
授予数据库上的所有权限。*访问'service-api'
SELECT * FROM mysql.user;
SHOW GRANTS FOR 'service-api'
对我来说,这很有效。
CREATE USER 'spowner'@'localhost' IDENTIFIED BY '1234';
GRANT ALL PRIVILEGES ON test.* To 'spowner'@'localhost';
FLUSH PRIVILEGES;
在哪里
Spowner:用户名 1234: spowner的密码 测试:数据库“spowner”具有访问权限
您可以使用create USER语句创建新用户,并使用GRANT授予他们权限。
推荐文章
- 将表从一个数据库复制到另一个数据库的最简单方法?
- 如何通过查询在MySQL中获得数据库结构?
- MySQL删除表中的所有行,并将ID重置为零
- 在准备语句中使用“like”通配符
- MySQL中的表名是否区分大小写?
- 库未加载:libmysqlclient.16。在OS X 10.6上使用mysql2 gem运行'rails server'时出现dylib错误
- 如何知道MySQL表最近一次更新?
- 在MySQL中的一个查询中更新多个具有不同值的行
- 如果表存在则删除表并创建它,如果不存在则创建它
- MySQL OR与IN性能
- 将值从同一表中的一列复制到另一列
- 删除id与其他表不匹配的sql行
- MySQL CPU使用率高
- INT和VARCHAR主键之间有真正的性能差异吗?
- 拒绝访问;您需要(至少一个)SUPER特权来执行此操作