在MySQL中,可以使用CREATE USER
语句来创建一个新账户。以下是创建新账户的基本语法:
CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';
[username] 为用户名
[hostname] 为可进入的IP,如果不限制直接填 %?
[password] 为账户的密码
例如,要创建一个名为newuser
的用户,允许从任何主机连接,并设置密码为mypassword
,你可以执行以下语句:
CREATE USER 'newuser'@'%' IDENTIFIED BY 'mypassword';
请注意,执行此操作的用户需要具有足够的权限来创建新用户。
创建用户后,还可以根据需要为用户分配特定的权限。可以使用GRANT
语句来授予用户对数据库、表或特定操作的权限。例如,以下语句授予用户对特定数据库的读、写和删除权限:
GRANT SELECT, INSERT, UPDATE, DELETE ON database_name.* TO 'newuser'@'%';
在上面的语句中,将database_name
替换为要授予权限的数据库名称。
最后,为了使权限更改生效,需要执行以下语句刷新权限:
FLUSH PRIVILEGES;
对已经创建的账号进行权限调整,设置可访问范围和权限语句:
GRANT SELECT, INSERT, UPDATE, DELETE ON database_name.table_name TO 'username'@'hostname';
[SELECT, INSERT, UPDATE, DELETE] 分别对应查询、新增、更新和删除,需要授予哪些权限就填写哪些
[database_name]为数据库名
[table_name]为表名
如果需要授权某一数据库下所有表,使用[database_name.*]即可
如果需要授权所有数据库下所有表,使用[*.*]即可
对于已存在的用户,测试完成后需要删除,以下示例在MySQL中,可以使用DROP USER
语句来删除一个已存在的用户。以下是删除用户的语法:
DROP USER 'username'@'hostname';
在上面的语句中,将username
替换为要删除的用户的用户名,将hostname
替换为允许连接的主机名(可以是通配符,如%
表示任何主机)。
例如,要删除名为olduser
的用户,可以执行以下语句:
DROP USER 'olduser'@'%';
请注意,执行此操作的用户需要具有足够的权限来删除用户。
另外,如果想删除用户并同时删除该用户所拥有的所有数据库和表,可以使用以下语句:
DROP DATABASE database_name;
在上面的语句中,将database_name
替换为要删除的数据库的名称。这将删除数据库及其所有表和数据。请谨慎使用此操作,确保你确实想要删除整个数据库及其内容
SQL集合
-- 新建用户(限制IP)
CREATE USER 'testuser'@'0.0.0.0' IDENTIFIED BY '123456';
-- 新建用户(不限制IP)
CREATE USER 'testuser'@'%' IDENTIFIED BY 'adm123456';
-- 删除用户
DROP USER 'testuser'@'%';
-- 查询用户
SELECT User, Host FROM mysql.user;
-- 授权用户
GRANT SELECT, INSERT, UPDATE, DELETE ON database_name.* TO 'testuser'@'%';
GRANT SELECT ON mysql.* TO 'testuser'@'%';
GRANT SELECT ON *.* TO 'testuser'@'%';
-- 撤销用户授权
REVOKE SELECT, INSERT, UPDATE, DELETE ON *.* FROM 'testuser'@'%';
-- 刷新立即生效
FLUSH PRIVILEGES;