解析:教你轻松掌握 怎样撤消"DBA"权限

来源:岁月联盟 编辑:zhuzhu 时间:2007-10-11

由于引擎通常不允许在用户连接到数据库时撤消用户的 DBA 权限,因此撤消 DBA 权限最简单的方法就是只需等待用户断开连接,然后发出REVOKE DBA 语句。

但是,在当前连接到数据库的用户有机会执行其它任务之前,可能有必要立即撤消该用户的 DBA 权限。在本例中,假定您正尝试撤消用户Fred 的 DBA 权限。

从已连接的用户撤消 DBA 权限:

1.以具有 DBA 权限的另一个 用户的身份连接到同一数据库。

例如,使用 Fred 以外的用户 ID。

2.通过执行以下语句来禁止到服务器的连接:

CALL sa_server_option('disable_connections', 'ON')

这会禁止 Fred 在其现有连接断开之后再次连接。

3.通过执行以下语句列出到该数据库的所有连接:

CALL sa_conn_info( )

4.记下 Userid 列中包含 Fred 的每一行中 Number 列的值。

5.对于在第 4 步中记下的每个连接号,执行以下语句:

DROP CONNECTION number

这样就会立即断开每个连接,并回退任何未提交的事务。注意,在执行 DROP 语句之前由 fred 提交的任何事务以及 fred 执行的任何 DDL 均不会回退,必须手动撤消。

6.执行以下 SQL 语句:

REVOKE DBA FROM fred

7.通过执行以下语句重新启用到服务器的连接:

CALL sa_server_option('disable_connections', 'OFF')

(责任编辑:卢兆林)