Chinaunix首页 | 论坛 | 博客
  • 博客访问: 91929563
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Sybase

2008-04-11 12:54:56

 来源:赛迪网    作者:Sybase

由于引擎通常不允许在用户连接到数据库时撤消用户的 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')
阅读(316) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~