sql,CREATE USER '新用户名'@'localhost' IDENTIFIED BY '密码';,
“MySQL是一个广泛使用的开源关系数据库管理系统,它支持多种操作系统和编程语言,用户管理是MySQL数据库管理中的一个重要方面,包括创建新用户、授予权限和管理用户等操作,下面将详细介绍如何在MySQL中新建用户:
MySQL 新建用户
1、使用CREATE USER
语句
语法:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
说明:
username
:你将创建的用户名。
host
:指定该用户在哪个主机上可以登录,如果是本地用户可用localhost
,如果允许从任意远程主机登录,可以使用通配符%
。
password
:该用户的登录密码,可以为空(即无需密码登录)。
例子:
CREATE USER 'dbadmin'@'localhost' IDENTIFIED BY 'pwd123'; CREATE USER 'dbadmin'@'192.168.1.100' IDENTIFIED BY 'pwd123'; CREATE USER 'superadmin'@'%' IDENTIFIED BY 'mypassword';
2、查看用户帐户的权限
语法:
SHOW GRANTS FOR 'username'@'host';
例子:
SHOW GRANTS FOR 'dbadmin'@'localhost';
结果:
mysql> SHOW GRANTS FOR 'dbadmin'@'localhost'; ++ | Grants for dbadmin@localhost | ++ | GRANT USAGE ON *.* TO 'dbadmin'@'localhost'| ++
解释:上述结果表明,dbadmin
用户帐户只能登录到数据库服务器,没有其他权限。
3、授权
语法:
GRANT privileges ON databasename.tablename TO 'username'@'host';
说明:
privileges
:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所有权限则使用ALL。
databasename
:数据库名。
tablename
:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用表示。
例子:
GRANT SELECT, INSERT ON test.user TO 'pig'@'%'; GRANT ALL ON *.* TO 'pig'@'%';
4、设置与更改用户密码
语法:
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
例子:
SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");
5、撤销用户权限
语法:
REVOKE privilege ON databasename.tablename FROM 'username'@'host';
例子:
REVOKE SELECT ON *.* FROM 'pig'@'%';
6、删除用户
语法:
DROP USER 'username'@'host';
例子:
DROP USER 'pig'@'%';
相关问答FAQs
Q1: 如何创建一个可以从任何主机连接的用户?
A1: 你可以使用通配符%
来允许用户从任何主机连接。
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'mypassword';
这将创建一个名为remote_user
的用户,该用户可以从任何主机连接到MySQL服务器。
Q2: 如何授予一个用户所有的数据库和表的权限?
A2: 你可以使用ALL PRIVILEGES
关键字来授予用户所有的权限。
GRANT ALL PRIVILEGES ON *.* TO 'username'@'host' WITH GRANT OPTION;
这将授予username
用户对host
上的所有数据库和表的所有权限,并且该用户还可以将这些权限授予其他用户。
序号 | 字段名 | 数据类型 | 描述 | 示例值 |
1 | user | VARCHAR(50) | 用户名 | new_user1 |
2 | password | VARCHAR(255) | 密码 | P@ssw0rd123 |
3 | host | VARCHAR(255) | 允许访问的主机地址 | % |
4 | db | VARCHAR(255) | 可访问的数据库名 | my_database |
5 | select_priv | ENUM(‘N’,’Y’) | 是否具有SELECT权限 | Y |
6 | insert_priv | ENUM(‘N’,’Y’) | 是否具有INSERT权限 | Y |
7 | update_priv | ENUM(‘N’,’Y’) | 是否具有UPDATE权限 | Y |
8 | delete_priv | ENUM(‘N’,’Y’) | 是否具有DELETE权限 | Y |
9 | create_priv | ENUM(‘N’,’Y’) | 是否具有CREATE权限 | Y |
10 | drop_priv | ENUM(‘N’,’Y’) | 是否具有DROP权限 | Y |
11 | reload_priv | ENUM(‘N’,’Y’) | 是否具有RELOAD权限 | Y |
12 | shutdown_priv | ENUM(‘N’,’Y’) | 是否具有SHUTDOWN权限 | Y |
13 | process_priv | ENUM(‘N’,’Y’) | 是否具有PROCESS权限 | Y |
14 | file_priv | ENUM(‘N’,’Y’) | 是否具有FILE权限 | Y |
15 | grant_priv | ENUM(‘N’,’Y’) | 是否具有GRANT权限 | Y |
16 | references_priv | ENUM(‘N’,’Y’) | 是否具有REFERENCES权限 | Y |
17 | index_priv | ENUM(‘N’,’Y’) | 是否具有INDEX权限 | Y |
18 | alter_priv | ENUM(‘N’,’Y’) | 是否具有ALTER权限 | Y |
19 | show_db_priv | ENUM(‘N’,’Y’) | 是否具有SHOW DATABASES权限 | Y |
20 | super_priv | ENUM(‘N’,’Y’) | 是否具有SUPER权限 | Y |
21 | create_tmp_table_priv | ENUM(‘N’,’Y’) | 是否具有CREATE TEMPORARY TABLES权限 | Y |
22 | lock_tables_priv | ENUM(‘N’,’Y’) | 是否具有LOCK TABLES权限 | Y |
23 | execute_priv | ENUM(‘N’,’Y’) | 是否具有EXECUTE权限 | Y |
24 | repl_slave_priv | ENUM(‘N’,’Y’) | 是否具有REPLICATION SLAVE权限 | Y |
25 | repl_client_priv | ENUM(‘N’,’Y’) | 是否具有REPLICATION CLIENT权限 | Y |
26 | create_view_priv | ENUM(‘N’,’Y’) | 是否具有CREATE VIEW权限 | Y |
27 | show_view_priv | ENUM(‘N’,’Y’) | 是否具有SHOW VIEW权限 | Y |
28 | create_routine_priv | ENUM(‘N’,’Y’) | 是否具有CREATE ROUTINE权限 | Y |
29 | alter_routine_priv | ENUM(‘N’,’Y’) | 是否具有ALTER ROUTINE权限 | Y |
30 | create_user_priv | ENUM(‘N’,’Y’) | 是否具有CREATE USER权限 | Y |
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1208949.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复