GRANT ALL PRIVILEGES ON dbTest.* To 'user'@'hostname' IDENTIFIED BY 'password';
如果您在同一台计算机上运行访问MySQL的代码/站点,则hostname将为localhost。 现在,该歇下来了。 GRANT-此命令用于创建用户并授予对数据库、表等的权限。 ALL PRIVILEGES-这表示使用者将拥有所有标准权限,但不包括使用GRANT命令的权限。 dbtest.*-这指示MySQL应用这些权限以在整个dbtest数据库中使用。如果愿意,可以用特定的表名或存储例程替换 *。 TO 'user'@'hostname'-“user”是您正在创建的用户帐户的用户名。注意:这里必须有单引号。'hostname'告诉MySQL用户可以从哪个主机连接。如果您只想从同一台机器连接,请使用localhost IDENTIFIED BY 'password'-如您所猜,这会设定该使用者的密码。
$ mysql-create-user admin mypass
| CREATE USER 'admin'@'localhost' IDENTIFIED BY 'mypass'
$ mysql-create-db foo
| CREATE DATABASE IF NOT EXISTS foo
$ mysql-grant-db admin foo
| GRANT ALL ON foo.* TO 'admin'@'localhost'
| FLUSH PRIVILEGES
$ mysql-show-grants admin
| SHOW GRANTS FOR 'admin'@'localhost'
| Grants for admin@localhost
| GRANT USAGE ON *.* TO 'admin'@'localhost' IDENTIFIED BY PASSWORD '*6C8989366EAF75BB670AD8EA7A7FC1176A95CEF4' |
| GRANT ALL PRIVILEGES ON `foo`.* TO 'admin'@'localhost'
$ mysql-drop-user admin
| DROP USER 'admin'@'localhost'
$ mysql-drop-db foo
| DROP DATABASE IF EXISTS foo
9条答案
按热度按时间aurhwmvo1#
请尝试以下操作创建用户:
尝试以下操作以授予它对数据库
dbTest
的访问权限:如果您在同一台计算机上运行访问MySQL的代码/站点,则hostname将为localhost。
现在,该歇下来了。
GRANT
-此命令用于创建用户并授予对数据库、表等的权限。ALL PRIVILEGES
-这表示使用者将拥有所有标准权限,但不包括使用GRANT命令的权限。dbtest.*
-这指示MySQL应用这些权限以在整个dbtest数据库中使用。如果愿意,可以用特定的表名或存储例程替换 *。TO 'user'@'hostname'
-“user”是您正在创建的用户帐户的用户名。注意:这里必须有单引号。'hostname'告诉MySQL用户可以从哪个主机连接。如果您只想从同一台机器连接,请使用localhost
IDENTIFIED BY 'password'
-如您所猜,这会设定该使用者的密码。dzjeubhm2#
语法
要在MySQL/MariaDB 5.7.6及更高版本中创建用户,请使用
CREATE USER
syntax:则要授予对数据库的所有访问权限(例如
my_db
),请使用GRANT
Syntax,例如其中,
ALL
(priv_type)可以替换为特定权限,如SELECT
、INSERT
、UPDATE
、ALTER
等。然后,要重新加载新分配的权限,请运行:
正在执行
要运行上述命令,您需要运行
mysql
命令并在提示符中键入这些命令,然后通过quit
命令或Ctrl-D注销。要从shell运行,请使用
-e
参数(将SELECT 1
替换为上述命令之一):或从标准输入打印语句:
如果您在上面得到了 Access denied,请指定
-u
(用于用户)和-p
(用于密码)参数,或者对于长期访问,请在~/.my.cnf
中设置凭据,例如:外壳集成
对于不熟悉MySQL语法的人来说,这里有一些方便的shell函数,它们很容易记住和使用(要使用它们,您需要加载下面包含的shell函数)。
示例如下:
要使用上面的命令,你需要将下面的函数复制并粘贴到你的 rc 文件中(例如
.bash_profile
),然后重新加载你的shell或源文件。在这种情况下,只需输入source .bash_profile
:注意:如果您不希望在Bash历史记录中留下痕迹(如密码),请检查:How to prevent commands to show up in bash history?
5cg8jx4n3#
创建用户并授予对数据库的所有权限。
登录MySQL:
现在创建并授予
匿名用户(仅用于本地测试)
或者,如果您只想授予对数据库的完全无限制访问权限(例如,在本地计算机上的测试示例),则可以授予匿名用户访问权限,如下所示:
注意
这对于开发中的垃圾数据是很好的。不要对你关心的任何东西这样做。
o3imoua44#
忽略**-p选项,如果mysql用户没有密码或**只需按“[Enter]”按钮绕过。用大括号括起来的字符串需要替换为实际值。
gj3fmq9x5#
您可以使用CREATE USER语句创建新用户,并使用GRANT为他们给予权限.
5rgfhyps6#
对我来说,这很管用。
其中
hujrc8aj7#
下面的命令将工作,如果你想创建一个新的用户给予他所有的访问一个特定的数据库(不是所有的数据库在您的Mysql)在您的本地主机.
这将把对一个数据库
test_database
(在您的情况下为dbTest
)的所有权限授予localhost上的该用户。通过运行下面的命令,检查上面的命令向该用户授予了哪些权限。
为了以防万一,如果您希望将用户访问权限限制为仅访问一个表
gtlvzcf88#
如果省略了
host
部分,则默认为通配符%
,允许所有主机。CREATE USER 'service-api';
GRANT ALL PRIVILEGES ON the_db.* TO 'service-api' IDENTIFIED BY 'the_password'
1zmg4dgp9#
尝试使用Windows计算机上运行的MySQL Workbench在MyQL上创建数据库时遇到此问题。
下面的命令在Linux机器MySQL CLI上有效:
但是在Windows机器上运行的MySQL Workbench上不起作用。我不得不改用下面的命令。请注意
符号和
在以下命令中使用:
或