5、删除用户(DROP/DELETE USER)

在 MySQL 数据库中,可以使用 DROP USER 语句删除用户,也可以直接在 mysql.user 表中删除用户以及相关权限。

1. 使用 DROP USER 语句删除普通用户

使用 DROP USER 语句删除用户的语法格式如下:

DROP USER <用户1> [ , <用户2> ]

其中,用户用来指定需要删除的用户账号。

使用 DROP USER 语句应注意以下几点:

  • DROP USER 语句可用于删除一个或多个用户,并撤销其权限。
  • 使用 DROP USER 语句必须拥有 mysql 数据库的 DELETE 权限或全局 CREATE USER 权限。
  • 在 DROP USER 语句的使用中,若没有明确地给出账户的主机名,则该主机名默认为“%”。

注意:用户的删除不会影响他们之前所创建的表、索引或其他数据库对象,因为 MySQL 并不会记录是谁创建了这些对象。

例 1
下面使用 DROP USER 语句删除用户’test1@‘localhost’。SQL 语句和执行过程如下。

mysql> DROP USER 'test1'@'localhost';
Query OK, 0 rows affected (0.00 sec)

在 cmd 命令行工具中,使用 test1 用户登录数据库服务器,发现登录失败,说明用户已经删除,如下所示。

C:\Users\USER>mysql -h localhost -u test1 -p
Enter password: ****
ERROR 1045 (28000): Access denied for user 'test'@'localhost' (using  password: YES)

2. 使用DELETE语句删除普通用户

可以使用 DELETE 语句直接删除 mysql.user 表中相应的用户信息,但必须拥有 mysql.user 表的 DELETE 权限。其基本语法格式如下:

DELETE FROM mysql.user WHERE Host='hostname' AND User='username';

Host 和 User 这两个字段都是 mysql.user 表的主键。因此,需要两个字段的值才能确定一条记录。

例 2
下面使用 DELETE 语句删除用户’test2’@‘localhost’。SQL 语句和执行过程如下所示。

DELETE FROM mysql.user WHERE Host='localhost'AND User='test2';
Query OK, 1 rows affected (0.00 sec)

结果显示删除成功。可以使用 SELETE 语句查询 mysql.user 表,以确定该用户是否已经成功删除。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
shell脚本是一种命令语言,可以通过编写一系列命令来实现自动化任务。下面是一个示例的shell脚本,用于创建或删除Oracle用户和表空间。 1. 创建Oracle用户和表空间的脚本: ```shell #!/bin/bash # 设置Oracle环境变量 export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 export ORACLE_SID=orcl # 创建Oracle用户 function create_user() { sqlplus -s username/password@localhost <<EOF CREATE USER myuser IDENTIFIED BY mypassword; GRANT CONNECT, RESOURCE TO myuser; EXIT; EOF } # 创建Oracle表空间 function create_tablespace() { sqlplus -s username/password@localhost <<EOF CREATE TABLESPACE mytablespace DATAFILE '/u01/app/oracle/oradata/orcl/mytablespace.dbf' SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE 500M; ALTER USER myuser DEFAULT TABLESPACE mytablespace; EXIT; EOF } # 调用函数来创建用户和表空间 create_user create_tablespace ``` 上述脚本首先设置Oracle环境变量,然后定义了两个函数create_user和create_tablespace,分别用于创建Oracle用户和表空间。在函数内部使用sqlplus命令连接到Oracle数据库,并执行相应的SQL语句来实现创建用户和表空间的操作。 2. 删除Oracle用户和表空间的脚本: ```shell #!/bin/bash # 设置Oracle环境变量 export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 export ORACLE_SID=orcl # 删除Oracle用户 function delete_user() { sqlplus -s username/password@localhost <<EOF DROP USER myuser CASCADE; EXIT; EOF } # 删除Oracle表空间 function delete_tablespace() { sqlplus -s username/password@localhost <<EOF DROP TABLESPACE mytablespace INCLUDING CONTENTS AND DATAFILES; EXIT; EOF } # 调用函数来删除用户和表空间 delete_user delete_tablespace ``` 上述脚本与创建脚本类似,只是SQL语句改为删除用户和表空间的操作。通过调用相应的函数来实现删除用户和表空间的功能。 需要注意的是,以上脚本中的username/password@localhost需要根据实际情况进行修改,以正确连接到Oracle数据库。另外,创建表空间时指定的文件路径和名称也需要根据实际情况进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值