MySQL新增、管理用户,控制访问【新手向】

在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;

你可能感兴趣的:(mysql,数据库)