远程Sybase数据库技术支持,联系手机:13811580958,QQ:289965371!

 

随着Sybase被完全整合到SAP下,Sybase原来的支持网站被SAP Support Portal取代。
只有购买了SAP服务的用户才能使用账号登录SAP Support Portal进行介质下载、补丁升级、报Incident等。
目前,原Sybase所有产品(包括:Adaptive Server Enterprise、Sybase IQ、Replication Server、PowerDesigner等)的官方手册仍然可以从http://infocenter.sybase.com/help/index.jsp进行浏览或下载。暂不清楚该网站http://infocenter.sybase.com/help/index.jsp何时会被完全迁移到SAP Support上!
Sybase官方手册英文版有html和pdf两种格式,而中文版手册只有pdf一种格式。为了国内Sybase用户更方便、快捷地搜索Sybase常见产品的官方手册内容,特将中文版Sybase官方手册转为html格式!
Sybase产品官方手册中文版的html格式所有内容的版权归SAP公司所有!本博客站长是Sybase数据库的铁杆粉丝!

如有Sybase数据库技术问题需要咨询,请联系我!

  QQ :289965371 点击这里给我发消息
  Email:

以下官方手册为ASE 15.7 ESD#2中文版:

  1. 新增功能公告 适用于 Windows、Linux 和 UNIX 的 Open Server 15.7 和 SDK 15.7
  2. 新增功能摘要
  3. 新增功能指南
  4. ASE 15.7 发行公告
  5. 配置指南(windows)
  6. 安装指南(windows)
  7. 参考手册:构件块
  8. 参考手册:命令
  9. 参考手册:过程
  10. 参考手册:表
  11. Transact-SQL® 用户指南
  12. 系统管理指南,卷 1
  13. 系统管理指南,卷 2
  14. 性能和调优系列:基础知识
  15. 性能和调优系列:锁定和并发控制
  16. 性能和调优系列:监控表
  17. 性能和调优系列:物理数据库调优
  18. 性能和调优系列:查询处理和抽象计划
  19. 性能和调优系列:使用 sp_sysmon 监控 Adaptive Server
  20. 性能和调优系列:利用统计分析改进性能
  21. 程序员参考 jConnect for JDBC 7.0.7
  22. Adaptive Server Enterprise 中的 Java
  23. 组件集成服务用户指南
  24. Ribo 用户指南
  25. 内存数据库用户指南
  26. Sybase Control Center for Adaptive Server® Enterprise
  27. 安全性管理指南
  28. 实用程序指南

 


< 上一个 | 内容 | 下一步 >

grant

说明 为单个用户、用户组和角色指派权限。

语法 授予访问数据库对象的权限:

grant {all [privileges]| permission_list}

on {table_name as [correlation_name][(column_list)]

| view_name[(column_list)]

| stored_procedure_name | SQL_function_name}

| keyname}

[where search_conditions [as pred_name]] to {public | name_list | role_list}

[with grant option] [granted by grantor]

授予使用内置函数的权限:

grant select

on [builtin] builtin

to {name_list | role_list} [granted by grantor]

授予执行特定命令的系统特权:

grant {all [privileges] | privilege_list} to {public | name_list | role_list} [granted by grantor]

授予 dbcc 特权:

grant {dbcc_privilege [on database ]

[, dbcc_privilege [on database ], ...]} to {user_list | role_list }

[granted by grantor]

授予特定系统表的缺省权限:

grant default permissions on system tables

授予被授予者权限,允许其将服务器用户标识切换成任何其它服务器登 录名,并根据目标登录名的角色限制其使用:

grant set proxy to name_list

[restrict role role_list | all | system] [granted by grantor]


参数 all


当用于指派访问数据库对象的权限时, all 指定授予适用于指定对象的 所有权限 (decrypt 权限除外)。所有对象所有者都可以使用含有对象 名的 grant all 授予各自对象的权限。 decrypt 权限必须单独授予。

在未启用细化权限的情况下,系统管理员或数据库的所有者可以使用 grant all 指派用于创建数据库对象的特权 (请参见 “授予执行特定命 令的系统特权”的语法)。由系统管理员使用时,grant all 指派所有的 create 特权 (create databasecreate defaultcreate procedurecreate rulecreate tablecreate function create view)。数据库所有者使用 grant all 或在 master 数据库外执行 grant all 时, Adaptive Server 将授予 除 create database 之外的所有 create 权限并显示信息性消息。

在启用细化权限的情况下,不支持使用 grant all 授予所有 create 特权。 有关详细信息,请参见 《安全性管理指南》中的 “使用细化权限”。

不能将 all 用于包含 where 子句的 grant 语句。

permission_list 是授予的对象访问权限的列表。如果列出的权限不止一个,可用逗号 将它们隔开。下表说明了可针对每种对象类型授予的访问权限:

image

对象 permission_list 可包括

selectupdatereferencesdecrypt

列名可以在 column_list 中指定。

加密密钥 select

存储过程 execute

SQL 函数 execute

selectinsertdeleteupdatereferencesupdate statisticsdelete statisticstruncate tabledecrypttransfer tableidentity_insert * identity_update *

视图 selectinsertdeleteupdatedecryptidentity_insert *

identity_update *


image

注释 标有星号 (*) 的权限仅在启用细化权限时才能授予。

image


correlation_name

仅用于 grant ... where 命令,作为别名来引用 where 子句中 table_name

内的列。

table_name 是您在授予其使用权限的表的名称。该表必须在当前数据库中。对于 每个 grant 语句只能列出一个对象。


column_list 是由逗号分隔的、该权限适用的一个或多个命名列。如果指定了列, 则只能授予 selectreferencesdecrypt update 权限。

如果使用 where 子句对一个或多个命名列发出 grant 命令,则 Adaptive Server 将按照以下方式对用户的 selectupdate delete 命令实施行级 访问:

在目标列表或用户 select 语句的 where 子句中引用 grant select 语句 上的一个或多个命名列

在用户 update 语句的目标列表中引用 grant update 语句上的一个或 多个命名列

对于会话已将 ansi_permissions 设置为开的用户 update delete 语 句,在其 where 子句中引用 grant select 上的一个或多个列。

view_name

是您在授予其使用权限的视图的名称。该视图必须位于当前数据库中。

stored_procedure_name 是您在授予其权限的存储过程的名称。该存储过程必须位于当前数据 库中。

key_name

是您在授予其访问权限的加密密钥的名称。 key_name 必须存在于当 前数据库中。

SQL_function_name

是您在授予其权限的 SQL 函数的名称。此存储函数必须位于当前数 据库中。对于每个 grant 语句只能列出一个函数。

where search_conditions

充当行过滤器,与 selectupdate delete 语句中指定的任何 where 子 句结合使用。仅当向表授予 selectupdate delete 特权时,才可以使 用 where 语法。 search_conditions 可以使用一般 where 子句中允许的所 有语法。如果 where 子句访问没有授权的表,则必须使用子查询。关 于使用 grant 语句上的 where 子句的信息,请参见 《安全性管理指 南》中的 “授予谓词特权”

as pred_name 是谓词的名称,在当前数据库中授予者所拥有的其它对象名称中必须 是唯一的,并且符合标识符规则。如果您省略 pred_nameAdaptive Server 会向 grant 谓词指派一个唯一的名称,使用 sp_helprotect 可查看 该名称。pred_name 不能用于没有 where 子句的 grant 语句。谓词可由 revoke 命令按名称引用。


public

指所有用户。对于对象访问权限, public 不包括对象所有者。对于对 象创建权限或 set proxy 授权, public 不包括数据库所有者。

name_list

是由逗号分隔的用户名和组名的列表。

role_list

是您要授予其权限的角色 (系统定义角色或用户定义角色)的列表。

with grant option

允许 name_list 中指定的用户向其他用户授予对象访问权限。使用 with grant option 只能向单个用户授予权限,而不能向 “public”或者向组 或角色授予权限。不能使用 with grant option 授予谓词特权

granted by grantor

将授予者指定为数据库中未执行该命令的用户。

grantor

当前数据库中的有效用户名,授予者的用户标识 (而非执行者的用 户标识)将会作为授权者记录在系统目录 sysprotects 中。

builtin

是内置函数。在内置函数名允许使用相同的名称区分表和可授予内置 函数之前,指定关键字 builtin。可授予 builtin 函数为 set_appcontextget_appcontextlist_appcontextauthmechrm_appcontext next_identity (需要对 IDENTITY 列的 select 权限)。

privilege_list 是列有可授权系统特权的列表。系统特权包括服务器范围和数据库范 围特权。有关可授予的系统特权,请参见 1-21 1-22。有关如何 授予系统特权的详细信息,另请参见 “用法”部分。使用逗号分隔 多个命令。

dbcc_privilege

是您在授予的 dbcc 特权的名称。它不能是变量。 1-21 1-22 包 括可授予的服务器范围 dbcc 和数据库范围 dbcc 特权。


image

注释 不能向 public 或组授予或撤消 dbcc 特权。

image


database

是您正在授予其权限的数据库的名称。它用于授予数据库范围 dbcc 特权。 on database 子句是可选的,数据库必须是当前数据库。被授予 者必须是目标数据库中的有效用户。 database 应符合标识符的规则, 而且不能是变量。

如果在同一命令中存在多个授予的操作,则 database 必须是唯一的。

set proxy

授予用户充当另一用户的权限。如果被授予者不具有已授予的 role_list 中的角色,而目标登录名具有已授予的 role_list 中的任何角 色,对该目标登录名进行 set proxy 将失败。

system

被授予者不能与拥有其它系统角色的用户交换其标识。 sysystem 只能 用于 set proxy 参数。

restrict role role_list

只有被授予者和目标登录名拥有 role_list 中包括的任何角色,才允许 其交换标识。

all


被授予者可将其标识授予与其具有相同角色集的任何用户。也就是 说,被授予者不能通过执行 set proxy 命令来继承任何新角色。

系统表的缺省权限

指定您授予对 425 页的 “授予对系统表的缺省权限”中所列出的 系统表的缺省权限。

示例 示例 1 授予 Mary 和“sales”组在 titles 表上使用 insert delete 命令的权限:

grant insert, delete on titles

to mary, sales

示例 2 授予 “public”(包括所有用户) get_appcontext 函数的 select 权限:

grant select on builtin get_appcontext to public

将其与以下命令比较,如果存在一个名为 get_appcontext 的表,以下命 令将授予该表的 select 权限:

grant select on get_appcontext to public

明确在 grant 语句中包括 builtin 参数可确保您不会错误选择与某个函数同 名的表 本例中,存在与 get_appcontext 函数同名的 get_appcontext 表。

示例 3 有两种方法可以将 titles 表的 price advance 列的 update 权限授予 “public”(包括所有用户):

grant update


on titles (price, advance) to public

或:

grant update (price, advance) on titles

to public

示例 4 向用户 Mary 授予对 titles 表的 transfer table 权限:

grant transfer table on titles to mary

示例 5 授予 Mary John 使用 create database create table 命令的权限。

Mary John create table 权限仅适用于 master 数据库:

grant create database, create table to mary, john

示例 6 授予所有用户对 titles 表的完整访问权限 (decrypt 权限除外):

grant all on titles to public

示例 7 Mary authors 表上使用 update 命令的权限和将该权限授予其 他用户的权限:

grant update on authors to mary

with grant option

示例 8 Bob titles 表的 price 列上使用 select update 命令的权限和将 该权限授予其他用户的权限:

grant select, update on titles (price) to bob

with grant option

示例 9 授予所有系统安全员执行 new_sproc 存储过程的权限:

grant execute on new_sproc to sso_role

示例 10 授予 James 在引用 titles 表的 price 列的另一个表上创建参照完整 性约束的权限:

grant references on titles (price)


to james


image

注释 在创建包含参照完整性约束的表以引用另一用户的表之前,必须 被授予对被引用表的 references 权限。该表在被引用的列上还必须具有 一个唯一约束或唯一索引。有关参照完整性约束的详细信息,请参见 create table

image


示例 11 密钥所有者执行时,授予数据库所有者使用 ssn_key 指定列加 密的权限。数据库所有者需要对 ssn_key 具有 select 权限,以便在执行 create tablealter table select into 时进行引用:

grant select on ssn_key to dbo

示例 12 授予 Bob 创建加密密钥的权限:

grant create encyption key to Bob

示例 13 授予对 customer 表中所有加密列的 decrypt 权限:

grant decrypt on customer to accounts_role

示例 14 Joe 授予对 master dump any database 特权,允许他转储任何 数据库:

1> use master

2> go

1> grant dump any database to joe 2> go

示例 15 Joe 授予对数据库 pubs2 create any object 特权,允许其代表 自己或者 pubs2 中的其他用户创建任何对象特权:

1> use pubs2

2> go

1> grant create any object to joe 2> go

示例 16 Alex 授予 manage roles。这会返回一条错误,因为服务器范围 特权需要 master 为当前数据库:

1> use pubs2

2> go

1> grant manage roles to alex 2> go

Msg 4627, Level 16, State 1:

Line 1:

The user must be in the master database to GRANT/REVOKE this command.


示例 17 通过使用角色,系统管理员允许 Carlos 对任何符合以下两种条件 之一的数据库执行 dbcc checkallocCarlos 是该数据库的有效用户;该数 据库支持 “guest”用户。


image

注释 注意:如果 master中已经存在 “guest”用户,则不必将 Carlos 作 为真实用户添加到 master 数据库中。

image


1> use master

2> go

1> create role checkalloc_role 2> go

1> grant dbcc checkalloc any database to checkalloc_role 2> go

1> create login carlos with password carlospassword 2> go

1> grant role checkalloc_role to carlos 2> go

示例 18 授予 Frank master 数据库中的有效用户)对服务器中的所有数 据库执行 dbcc checkdb 的能力:

1> use master

2> go

1> create login frank with password frankpassword 2> go

Password correctly set. Account unlocked.

New login created. (return status = 0)

1> sp_adduser frank

2> go

New user added. (return status = 0)

1> grant dbcc checkdb any database to frank 2> go

Frank 现在可对服务器中的、他是其中的有效用户的每个数据库执行

dbcc checkdb 命令:

% isql -Ufrank -Pfrankpassword -SSERVER 1> dbcc checkdb (tempdb)

2> go

Checking tempdb:Logical pagesize is 2048 bytes Checking sysobjects:Logical pagesize is 2048 bytes


...

The total number of data pages in this table is 1. DBCC execution completed.If DBCC printed error messages, contact a user with system administrator (SA) role.


image

注释 不能向 public 或组授予或撤消 dbcc 特权。

image


示例 19 如果 Walter 需要成为 pubs2 的维护用户,但系统管理员不希望授 予他对其它数据库的管理员级特权,则系统管理员可执行以下命令:

1> use pubs2

2> go

1> grant dbcc checkdb on pubs2 to walter 2> go


image

注释 系统管理员必须在目标数据库 (在本例中为 pubs2)中,同时,

Walter 必须是该目标数据库中的有效用户。 on pubs2 子句是可选的。

image


Walter 现在能够在 customers 数据库上执行 dbcc checkdb 命令,而不会遇 到错误。

示例 20 错误地将 grant dbcc revoke dbcc 应用于组或 public

1> grant dbcc tablealloc on pubs2 to public Msg 4629, Level 16, State 1:

Line 1:

GRANT/REVOKE DBCC does not apply to groups or PUBLIC. 1> sp_addgroup gr

New group added. (return status = 0)

11> grant dbcc tablealloc on pubs2 to public

Msg 4629, Level 16, State 1:

Line 1:

GRANT/REVOKE DBCC does not apply to groups or PUBLIC.

示例 21 不能使用 grant 选项授予系统特权:

grant change password to alex with grant option Msg 156, Level 15, State 1:

Line 1:

Incorrect syntax near the keyword 'with'.

示例 22 允许 Harry authors 表上使用 truncate table updates statistics


grant truncate table on authors to harry grant update statistics on authors to harry

示例 23 允许 Billy authors 表上使用 delete statistics 命令:

grant delete statistics on authors to billy

示例 24 授予角色为 oper_role 的所有用户 truncate tableupdate delete statistics 特权 (如果 Billy Harry 具有角色 oper_role,则他们现在可以 对 authors 执行这些命令):

grant truncate table on authors to oper_role grant update statistics on authors to oper_role grant delete statistics on authors to oper_role

示例 25 通过存储过程隐式授予 truncate tabledelete statistics update statistics 权限。例如,假设 Billy 拥有 authors 表,他可以执行以下命令 授予 Harry authors 表上运行 truncate table update statistics 的特权:

create procedure sproc1 as

truncate table authors update statistics authors go

grant execute on sproc1 to harry go

也可以通过存储过程在列级隐式授予 update statistics delete statistics 的 权限。

示例 26 授予 Harry Billy 执行 set proxy set session authorization 的权 限,使其可以在服务器上充当另一个用户:

grant set proxy to harry, billy

示例 27 授予具有 sso_role 权限的用户执行 set proxy set session authorization 的权限,使其可以在服务器上充当另一个用户:

grant set session authorization to sso_role

示例 28 set proxy 授予 Joe,但限制他将标识切换为具有 sasso admin 角色的任何用户 (但是,如果他已经具有这些角色,则他可以对 具有这些角色的任何用户执行 set proxy):

grant set proxy to joe

restrict role sa_role, sso_role, admin_role

如果 Joe 尝试将其标识切换为某个具有 admin_role 的用户 (在本示例中, 为 Our_admin_role)时,除非他已经具有 admin_role,否则此命令失败:

set proxy Our_admin_role


Msg 10368, Level 14, State 1:

Server 's', Line 2:Set session authorization permission denied because the target login has a role that you do not have and you have been restricted from using.

Joe 被授予 admin_role 并重试此命令后,此命令成功:

grant role admin_role to joe set proxy Our_admin_role

示例 29 限制 Joe 在切换标识时被授予任何新的角色:

grant set proxy to joe restrict role all

Joe 只能将 set proxy 授予具有与他相同角色 (或更少特权的角色)的用 户。

示例 30 限制 Joe 在使用 set proxy 时获得任何新的系统角色:

grant set proxy to joe restrict role system

如果目标登录名具有 Joe 所没有的系统角色,则 set proxy 失败。

示例 31 仅允许学员查看其各自等级的相关信息:

grant select on grades

where user_name(uid) = USER as predicate_grades to public


示例 32 允许注册学员查看所有课程的相关信息。第一个 grant 允许任何 用户浏览所提供的课程和章节。第二个 grant 仅允许用户查看自己注册 的课程。

grant select on enrollment (course_id, quarter, section_id) to public


grant select on enrollment as e (uid, with_honors)

where e.uid in (select r.uid from registered_students r

where USER = user_name(r.uid)) to public


注册学员输入以下查询时,会被限定为查看自己的课程 (因为已选中

with_honors 列):


select course_id, quarter, with_honors from enrollment


同样,当注册学员尝试使用以下查询查看用户所参与的课程数时:

select course_id, count(uid) from enrollment group by course_id


Adaptive Server 将返回一个行,显示用户注册的课程数。

示例 33 用户 Smith 授予 John mary.books select 权限,表所有者 Mary

为授予者:

grant select on mary.books to john granted by mary

示例 34 用户 Smith 授予用户 John create table 权限, dbo 为授予者:

grant create table to john granted by dbo

示例 35 在禁用细化权限的情况下,授予系统特权 manage any login 将导 致错误:

1>sp_configure "enable granular permissions" 2>go

Parameter Name Default Memory Used Config Value Run Value Unit Type

-------------- ------- ---------- ------------ --------- ---- ----

enable granular

permissions 0 0 0 0 switch dynamic

(1 row affected) (return status = 0)


>grant manage any login to smith

>go

Msg 16325, Level 15, State 87:

Line 1:

Cannot GRANT/REVOKE permission 'MANAGE ANY LOGIN'.Verify that the granular permissions option is enabled.

示例 36 授予系统特权 own database 时,必须指定 on database 子句:

1>grant own database to smith 2>go

Msg 156, Level 15, State 2:

Line 1:


Incorrect syntax near the keyword 'to'.


1>grant own database on tdb1 to smith 2>go

用法 语法替代

可在 grant 语法中用关键字 from 替代 to

使用 set fipsflagger

set fipsflagger 选项启用的情况下,当执行 grant dbcc 时,它将发出下面 的警告:

SQL statement on line number 1 contains Non-ANSI text.The error is caused due to the use of DBCC.

“特权” (Privileges)

服务器范围系统特权

1-21 列出所有可授予服务器范围系统特权。必须在 master 数据库中 授予服务器范围特权。有关每个被授予特权可执行的操作,请参见

《安全性管理指南》中 “使用细化权限”一章的表 8-15:服务器范围特 权。


image

注释 1-21 中,如果禁用细化权限,则只能授予标有星号 ( * ) 的 特权。

dbcc 特权语法 dbcc dbcc_subcmd on all dbcc dbcc_subcmd any database 的 别名。这两种语法均受支持。

image


1-21: 可授予的服务器范围系统特权

image

类别 特权

特权管理 manage security permissions

manage server permissions

审计管理 manage auditing

登录名和角色管理 allow exceptional login

change password

manage any login


manage any login profile

manage remote login

manage roles


image

类别 特权

数据库管理 checkpoint (on database)

checkpoint any database

create database*

dump any database

dump database (on database)

load any database

load database (on database)

manage any database

服务器管理 manage any thread pool

manage cluster

manage disk

manage security configuration

DBCC 特权 dbcc checkalloc any database*

dbcc checkcatalog any database*

dbcc checkdb any database*

dbcc checkindex any database*

dbcc checkstorage any database*

dbcc checktable any database*

dbcc checkverify any database*

应用程序管理 manage any execution class

manage any ESP

manage data cache

manage dump configuration

其它 connect*

kill

kill any process

map external file

monitor server replication

set proxy


mount any database

online any database

online database (on database)

own any database

own database (on database)

quiesce any database

unmount any database


manage server

manage server configuration

shutdown


dbcc fix_text any database*

dbcc indexalloc any database*

dbcc reindex any database*

dbcc tablealloc any database*

dbcc textalloc any database*

dbcc tune*


manage lock promotion threshold

monitor qp performance

manage resource limit


set tracing*

set tracing any process

set switch

show switch

use any database

use database


数据库范围特权

1-22 列出所有可授予数据库范围系统特权。数据库范围特权必须在要 执行特权的数据库中授予。有关每个被授予特权可执行的操作,请参见

《安全性管理指南》中 “使用细化权限”一章的表 8-16:数据库范围特 权。


image

注释 1-22 中,如果禁用细化权限,则只能授予标有星号 ( * ) 的 特权。

image


1-22: 可授予的数据库范围特权

image

类别 特权

特权管理 manage any object permission

manage database permissions

用户管理 manage any user

设置用户 setuser*

复制管理 manage replication

数据库管理 manage database

查询计划管理 manage abstract plans

DBCC 特权 dbcc checkalloc *

dbcc checkcatalog *

dbcc checkdb *

dbcc checkindex *

dbcc checkstorage *

dbcc checktable *

dbcc checkverify *

系统目录 select any audit table

select any system catalog

truncate any audit table

一般对象 alter any object owner

create any object

drop any object

加密密钥 create encryption key *

manage any encryption key

manage column encryption key

缺省值 create default *

create any default

drop any default


dbcc fix_text *

dbcc indexalloc *

dbcc reindex *

dbcc tablealloc *

dbcc textalloc *

manage checkstorage

report checkstorage


manage master key

manage service key


image

类别 特权

函数 create function *

create any function

索引 create any index

过程 create procedure *

create any procedure

规则 create rule *

create any rule

drop any rule

alter any table

create any table

create table *

decrypt any table

delete any table

drop any table

identity_insert any table

identity_update any table

触发器 create trigger *

create any trigger

drop any trigger

视图 create view *

create any view

drop any view


drop any function

execute any function


execute any procedure

drop any procedure


insert any table

manage any statistics

references any table

reorg any table

select any table

transfer any table

truncate any table

update any table


特权列表

1-23 按字母顺序列出所有可授予的特权和权限。用 “*”标识的特权 不需要启用细化权限。

1-23: 特权的字母排序列表


特权名称


特权类型

管理方

(启用细化权限时)


含义

allow exceptional login

服务器

manage server 权限

alter any object owner

数据库

manage database 权限

alter any table

数据库

manage database 权限

change password

服务器

manage security 权限

checkpoint any database

服务器

manage server 权限

checkpoint (on database)

服务器

manage server 权限

checkpoint any database

checkpoint (on sybsecurity)

服务器

manage security 权限

connect*

服务器

manage server 权限



特权名称


特权类型

管理方

(启用细化权限时)


含义

create any default

数据库

manage database 权限

create any object

create any function

数据库

manage database 权限

create any object

create any index

数据库

manage database 权限

create any object

create any object

数据库

manage database 权限

create any procedure

数据库

manage database 权限

create any object

create any rule

数据库

manage database 权限

create any object

create any table

数据库

manage database 权限

create any object

create any trigger

数据库

manage database 权限

create any object

create any view

数据库

manage database 权限

create any view

create database*

服务器

manage database 权限

create default*

数据库

manage database 权限

create any default

create encryption key*

数据库

manage security 权限

manage column encryption key

create function*

数据库

manage database 权限

create any function

create index*

数据库

manage database 权限

create any index

create procedure*

数据库

manage database 权限

create procedure

create rule*

数据库

manage database 权限

create any rule

create table*

数据库

manage database 权限

create any table

create trigger*

数据库

manage database 权限

create any trigger

create view*

数据库

manage database 权限

create any view

dbcc checkalloc*

数据库

manage database 权限

dbcc checkalloc any database

dbcc checkalloc any database*

服务器

manage server 权限

dbcc checkcatalog*

数据库

manage database 权限

dbcc checkcatalo any database

dbcc checkcatalog any database*

服务器

manage server 权限

dbcc checkdb*

数据库

manage database 权限

dbcc checkdb any database

dbcc checkdb any database*

服务器

manage server 权限

dbcc checkindex*

数据库

manage database 权限

dbcc checkindex any database

dbcc checkindex any database *

服务器

manage server 权限

dbcc checkstorage*

数据库

manage database 权限

dbcc checkstorage any database

dbcc checkstorage any database *

服务器

manage server 权限

dbcc checktable*

数据库

manage database 权限

dbcc checktable any database

dbcc checktable any database*

服务器

manage server 权限

dbcc checkverify*

数据库

manage database 权限

dbcc checkverify any database

dbcc checkverify any database*

服务器

manage server 权限

dbcc fix_text*

数据库

manage database 权限

dbcc fix_text any database

dbcc fix_text any database*

服务器

manage server 权限

dbcc indexalloc*

数据库

manage database 权限

dbcc indexalloc any database



特权名称


特权类型

管理方

(启用细化权限时)


含义

dbcc indexalloc any database*

服务器

manage server 权限

dbcc reindex*

数据库

manage database 权限

dbcc reindex any database

dbcc reindex any database*

服务器

manage server 权限

dbcc tablealloc*

数据库

manage database 权限

dbcc tablealloc any database

dbcc tablealloc any database*

服务器

manage server 权限

dbcc textalloc*

数据库

manage database 权限

dbcc textalloc any database

dbcc textalloc any database*

服务器

manage server 权限

dbcc tune*

服务器

manage server 权限

decrypt*

对象

(列)

manage any object permission/object owner

decrypt any table

decrypt any table

数据库

manage database 权限

delete*

对象

manage any object permission/object owner

delete any table

delete any table

数据库

manage database 权限

delete statistics*

对象

manage any object permission/object owner

manage any statistics

drop any default

数据库

manage database 权限

drop any object

drop any function

数据库

manage database 权限

drop any object

drop any object

数据库

manage database 权限

drop any procedure

数据库

manage database 权限

drop any object

drop any rule

数据库

manage database 权限

drop any object

drop any table

数据库

manage database 权限

drop any object

drop any trigger

数据库

manage database 权限

drop any object

drop any view

数据库

manage database 权限

drop any object

dump any database

服务器

manage server 权限

dump database (on database)

服务器

manage server 权限

dump any database

dump database (on sybsecurity)

服务器

manage security 权限

execute*

对象

manage any object permission/object owner

execute any function (针对 udf

execute any function (针对系 统过程)

execute any function

数据库

manage database 权限

execute any procedure

数据库

manage database procedures

identity_insert

对象

manage any object permission/object owner

identity_insert any table

数据库

manage database 权限

identity_update

对象

manage any object permission/object owner



特权名称


特权类型

管理方

(启用细化权限时)


含义

identity_update any table

数据库

manage database 权限

insert*

对象

manage any object 权限/对象 所有者

insert any table

insert any table

数据库

manage database 权限

kill

服务器

manage server 权限

kill any process

kill any process

服务器

manage server 权限

load any database

服务器

manage server 权限

load database (on database)

服务器

manage server 权限

load any database

load database (on sybsecurity)

服务器

manage security 权限

manage abstract plans

数据库

manage database 权限

manage any database

服务器

manage server 权限

manage any encryption key

数据库

manage security 权限

manage any ESP

服务器

manage server 权限

manage any execution class

服务器

manage server 权限

manage any login

服务器

manage security 权限

manage any login profile

服务器

manage security 权限

manage any remote login

服务器

manage security 权限

manage any statistics

数据库

manage database 权限

manage any thread pool

服务器

manage server 权限

manage any user

数据库

manage database 权限

manage auditing

服务器

manage security 权限

manage checkstorage

数据库

manage database 权限

manage cluster

服务器

manage server 权限

manage column encryption key

数据库

manage security 权限

manage any encryption key

manage data cache

服务器

manage server 权限

manage database

数据库

manage database 权限

manage any database

manage database permissions

数据库

manage security 权限

manage disk

服务器

manage server 权限

manage dump configuration

服务器

manage server 权限

manage lock promotion threshold

服务器

manage server 权限

manage master key

数据库

manage security 权限

manage any encryption key

manage replication

服务器

manage server 权限

manage resource limit

服务器

manage server 权限

manage roles

服务器

manage security 权限

manage security configuration

服务器

manage security 权限

manage security permissions

服务器

manage security 权限



特权名称


特权类型

管理方

(启用细化权限时)


含义

manage server

服务器

manage server 权限

manage server configuration

服务器

manage server 权限

manage server permissions

服务器

manage server 权限

manage service key

数据库

manage security 权限

manage any encryption key

map external file

服务器

manage server 权限

monitor qp performance

服务器

manage server 权限

monitor server replication

服务器

manage server 权限

mount any database

服务器

manage server 权限

own any database

服务器

manage server 权限

online any database

服务器

manage server 权限

online database (on database)

服务器

manage server 权限

online any database

online database (on sybsecurity)

服务器

manage security 权限

own database (on database)

服务器

manage server 权限

own database (on sybsecurity)

服务器

manage security 权限

quiesce any database

服务器

manage server 权限

references*

对象

(列)

manage any object 权限/对象 所有者

references any table

references any table

数据库

manage database 权限

report checkstorage

数据库

manage database 权限

reorg any table

数据库

manage database 权限

select*

对象

manage any object 权限/对象

select any table (用于用户表

(列)

所有者

或视图)

select any audit table (用于审

计表)

select any system catalog (用

于系统表)

select any audit table

数据库

manage database 权限

select any system catalog

数据库

manage database 权限

select any table

数据库

manage database 权限

set proxy*

服务器

manage security 权限

set switch

服务器

manage server 权限

set tracing*

服务器

manage server 权限

set tracing (用于所有进程)

set tracing any process

服务器

manage server 权限

setuser*

数据库

manage database 权限

show switch

服务器

manage server 权限

shutdown

服务器

manage server 权限



特权名称


特权类型

管理方

(启用细化权限时)


含义

transfer any table

数据库

manage database 权限

transfer table

对象

manage any object 权限/对象 所有者

transfer any table

truncate any audit table

数据库

manage database 权限

truncate any table

数据库

manage database 权限

truncate table*

对象

manage any object 权限/对象 所有者

truncate any table

unmount any database

服务器

manage server 权限

update*

对象

(列)

manage any object 权限/对象 所有者

update any table

update any security catalog

服务器

manage security 权限

update any table

数据库

manage database 权限

update statistics

对象

manage any object 权限/对象 所有者

manage any statistics

use any database

服务器

manage server 权限

use database (on database)

服务器

manage server 权限

use any database

use database (on sybsecurity)

服务器

manage security 权限


处理一项特权可能意味着处理另一项更加细化的特权。例如,用户 具有 select any table 特权意味着此用户对所有用户表均具有 select 权 限。对于具有隐含关系的特权对的完整列表,请参见 1-23

授予以下数据库管理特权时,必须为每个特权指定 on database 子 句:checkpointdump databaseload databaseonline databaseown database。例如,要向 smith 授予对 db1 dump database 特权,可以 使用:

grant dump database on db1 to smith

可在同一授予命令中对不同的数据库授予不同的数据库管理特权。 例如,要向 smith 授予对 db1 own database 特权和对 db2 load database 特权,可以使用:

grant own database on db1, load database on db2 to smith

只能授予当前数据库中对象的权限。

grant revoke 命令须区别先后顺序。有冲突发生时,最近发出的语 句生效。


即便用户不具有对由过程或视图引用的对象的权限,他或她也可以 被授予该视图或存储过程的权限。请参见 《安全性管理指南》中的 “管理用户权限”。

无论为 declare cursor 语句所引用的基表或视图定义了何种权限, Adaptive Server 都授予所有用户声明游标的权限。游标不是作为 Adaptive Server 对象 (如表)定义的,因此不能对游标应用任何权 限。当用户打开游标时, Adaptive Server 会判断该用户对于定义该 游标的结果集的对象是否具有 select 权限。每次打开游标时它都会 检查权限。

如果用户有权访问游标所定义的对象, Adaptive Server 打开该游标 并允许用户使用该游标 fetch 行数据。 Adaptive Server 并不对每个 fetch 操作应用权限检查。但是,如果用户通过游标执行 delete update,则会对游标结果集中所引用对象的数据的删除和更新操作 应用常规权限检查。

grant 语句为每个接受此权限的用户、组或角色在 sysprotects 系统表 中添加一行。如果随后对用户或组的该权限执行 revoke 命令, Adaptive Server 会从 sysprotects 中删除相应的行。如果仅撤消了选 定的组成员的该权限,但并没有撤消获得此授权的整个组的该权 限, Adaptive Server 保留其初始行并为撤消的权限添加一个新行。

不同的授予者可为用户、组或角色授予相同的特权或权限。在此情 况下,表示同一特权或权限的多个相关授权的 sysprotects 将具有多 个行。如果稍后撤消一个或多个授权,则只要还有一个授权未撤 消,用户、组或角色就仍会具有特权或权限。

如果由于用户是某组的成员而继承了特定的权限,则在明确授予此 用户相同权限时,不会向 sysprotects 添加任何行。例如,如果已授 予 “public”对 authors 表中 phone 列的 select 权限,然后授予 John

(“ public”成员)对 authors 表的所有列的 select 权限。作为对 John grant 的结果所添加到 sysprotects 中的行包含对 authors 表中除 phone 列之外的所有列的引用,因为他已经具有对这一列的权限。

在缺省情况下,会向用户授予发出 create trigger 命令的权限。当撤 消用户创建触发器的权限时,会在 sysprotects 表中为该用户添加一 个撤消行。若要向该用户授予发出 create trigger 命令的权限,必须 发出两个 grant 命令。第一个命令从 sysprotects 中删除撤消行;第二 个命令插入一个授予行。如果撤消了创建触发器的权限,则用户甚 至无法在自己拥有的表上创建触发器。撤消用户创建触发器的权限 只影响从中发出 revoke 命令的数据库。

使用以下系统过程可显示有关权限的信息:

sp_helprotect 报告数据库对象、用户、组或角色的权限信息。



1> use pubs2

2> go

sp_column_privileges 报告表或视图的一列或多列的权限信息。

sp_table_privileges 报告表或视图的所有列的权限信息。

sp_activeroles 显示 Adaptive Server 当前登录会话的所有活动角 色,以及这些角色所包含的所有角色。

sp_displayroles 显示授予另一角色或用户的所有角色,或以表格 格式显示角色的整个层次树。

您可以用 sp_helprotect 来查看权限:

1> sp_helprotect

2> go

grantor

grantee

type

action

object

column

grantable

-------

-------

----

------

-------

-------

---------

dbo public Grant Select sysalternates All FALSE

...

dbo Walter Grant DBCC DBCC dbcc checkdb FALSE


(1 row affected) (return status = 0)

不能将 grant with grant option grant dbcc 一起使用。

向角色授予访问权限

授予角色的权限会替换授予用户或组的权限。例如,假定授予了 John 系统安全员角色,且 sso_role 被授予访问 sales 表的权限。如果撤消 John 访问 sales 表的个人权限,他仍可以访问 sales 表,因为他的角色权限覆 盖了他的个人权限。

然而, grant execute 权限不会阻止没有指定角色的用户被独立地授予存 储过程的执行权限。若要确保只有系统安全员才能被授予某个存储过程 的执行权限,可在该存储过程内使用 proc_role 系统函数。该函数检查调 用用户是否有执行过程的正确权限。请参见 proc_role

grant all 对象创建特权

在数据库中使用不带对象名的 grant all 不会授予 create encryption key

权限。仅当细化权限禁用时,才支持不带对象名的 grant all

不与对象名一起使用时, grant all 指派下列权限:create databasecreate defaultcreate procedurecreate rulecreate tablecreate function create viewcreate database 权限仅由系统管理员授予,并 且仅在 master 数据库内授予。


只有数据库所有者和系统管理员可以使用不带对象名的 grant all 语 法来授予用户或组 create 命令权限。当数据库所有者使用 grant all 命 令时,会显示信息性消息,声明只有系统管理员才能授予 create database 权限。而上述所有其它权限都被授予。

所有对象所有者都可以使用含有对象名的 grant all 授予各自对象的 权限。当与表或视图名加上用户或组名一起使用时,grant all 启用对 表的 deletedelete statisticsinsertselecttruncate tableupdate update statistics 权限。

grant with grant option 规则

不能通过 with grant option 将权限授予 “public”或者授予组或角色。

在授予权限的过程中,如果禁用细化权限,则会将系统管理员视为 对象所有者。如果系统管理员授予操作另一用户的对象的权限,则 相应的所有者名称将作为授予者在 sysprotects sp_helprotect 输出 中显示。启用细化权限时,授予者的名称将作为授予者出现在 sysobjects 中和 sp_helprotect 输出中。

不能使用 grant option 参数授予系统特权。

有关每个 grant 命令的信息保存在系统表 sysprotects 中,但有下列例 外情况:

如果同一授予者多次授予一个用户某一特定权限, Adaptive Server 会显示信息性消息。只有第一个 grant 记录被保留。

如果两个 grant 相同,只是其中有一个是以 with grant option 的形 式授予的,则保留 grant with grant option

如果同一授予者的两个 grant 语句向特定用户授予对某一特定表 的相同权限,但针对不同的列,则 Adaptive Server 将这两个授 权视作同一语句。例如,以下 grant 语句是等效的:

grant select on titles (price, contract) to keiko

grant select on titles (advance) to keiko grant select on titles (price, contract,

advance) to keiko

使用 granted by

不允许使用 granted by 来授予谓词特权。

不要求 grantor 具有执行 grant 命令的权限。

sysprotects.grantor 下列出的是授予者而非命令执行者。

使用 granted by 参数无需启用 enable granular permissions


对于通过 with grant 选项收到对象的 grant 权限的用户,其不能发出

granted by 参数。所有其他用户均可发出 granted by 参数。

例如,如果 mary 使用 grant 选项将其备忘录的 select 权限授予 john, 则 john 尝试发出第二个 grant 命令时将收到错误消息。

Mary

grant select on mary.books to john with grant option

John

grant select on mary.books to joe granted by smith

用户和用户组

用户组允许用一个语句对多个用户 grant revoke 权限。每个用户都 可以是另一个组的成员,且始终是 “public”的成员。

可使用 sp_adduser 命令添加新用户并使用 sp_addgroup 命令创建组。 若要允许在 Adaptive Server 上有登录名的用户以受限特权使用数据 库,可使用 sp_adduser 添加一个 “guest”用户,并为 “guest”指 派受限的权限。所有具有登录名的用户可作为 “guest”访问该数据 库。”所有具有登录名的用户可作为 “guest”访问该数据库。

若要删除用户,请使用 sp_dropuser。若要删除组,请使用 sp_dropgroup

若要向 “ public”之外的组添加新用户,请使用 sp_adduser。若要 更改已建立的用户组,请使用 sp_changegroup

若要显示组成员,请使用 sp_helpgroup

执行 sp_changegroup 以更改组成员资格时,它将通过执行以下命令 清除内存中的保护高速缓存:

grant all to null

这样就会用 sysprotects 表中的更新信息刷新高速缓存。若要直接修 改 sysprotects,请联系 Sybase 技术支持部门。

授予对系统表的缺省权限

从任意数据库发出该命令时均可授予和撤消其缺省权限的系统表有:


sysalternates

sysattributes

syscolumns

syscomments

sysconstraints

sysdepends

sysindexes

sysjars

syskeys

syslogs

sysobjects

syspartitions

sysprocedures

sysprotects

sysqueryplans

sysreferences

sysroles

syssegments

sysstatistics

systabstats

systhresholds

systypes

sysusermessages

sysusers

sysxtypes


此命令还进行以下更改:

撤消 public syscolumns (encrkyid) syscolumns (encrkydb) 权限。

撤消 public syscolumns (encrkydb) syscolumns (encrkyid) 权限。

撤消 public sysobjects(audflags) 权限

sysobjects 的权限授予 sso_role

撤消 public sysencryptkeys 的任何列的 select 权限

将对所有 sysencryptkeys 列的 select 权限授予 sso_role

syscolumns 的权限授予 sso_role

master 数据库发出该命令时可授予和撤消其缺省权限的系统表有:

sysdatabases

sysdevices

syslocks

sysmessages

sysprocesses

systransactions

sysusages

sysconfigures

syscurconfigs

syslanguages

syscharsets

sysservers

systimeranges

sysresourcelimits

syslogins

sysremotelogins

syssessions


此命令还:

撤消 public sysdatabases(audflags) select 权限

撤消 public sysdatabases(deftabaud) select

撤消 public sysdatabases(defvwaud) select

撤消 public sysdatabases(defpraud) select

撤消 public sysdatabases(audflags2) select


sysdatabases select 授予 sso_role

撤消 public syslogins(password) select 权限

撤消 public syslogins(audflags) select

撤消 public syslogins(lpid) select 权限

将对 syslogins select 授予 sso_role

撤消 public syslisteners(net_type) select

撤消 public syslisteners(address_info) select

将对 syslisteners select 授予 sso_role

撤消 public syssrvroles(srid) select

撤消 public syssrvroles(name) select

撤消 public syssrvroles(password) select

撤消 public syssrvroles(pwdate) select

撤消 public syssrvroles(status) select

撤消 public syssrvroles(logincount) select

将对 syssrvroles select 授予 public

撤消 public sysloginroles(suid) select

撤消 public sysloginroles(srid) select

撤消 public sysloginroles(status) select

将对 sysloginroles select 授予 sso_role

撤消 public sysinstances(hostname) select 权限

将对 sysinstances select 权限授予 sso_role

授予 update statisticsdelete statistics truncate table 权限

Adaptive Server 允许您向用户、角色和组授予对 update statisticsdelete statistics truncate table 命令的权限。通过将 update statisticsdelete statistics truncate table 添加到一个存储过程,然后将此过程的执行权限 授予用户或角色,表所有者也可以通过隐式 grant 提供权限。

不能在列级授予 update statistics 权限。必须具有 sso_role 才能在 sysrolessyssrvroles sysloginroles 安全表上运行 update statistics delete statistics


缺省情况下,具有 sa_role 的用户有权在除 sysrolessyssrvroles sysloginroles 之外的系统表上运行 update statistics delete statistics,并且 可以将此特权转交给其他用户。

还可以发出 grant all 授予 update statisticsdelete statistics truncate table

的权限。


image

注释 一旦授予用户执行 update statistics 的权限,其即具有执行此命令 的各种变化形式的权限,如 update all statisticsupdate partition statisticsupdate index statisticsupdate table statistics 等。例如,以下命令授予 Billy authors 表上运行 update statistics 的各种变化形式的权限:

grant update statistics on authors to billy

如果撤消用户执行 update statistics 的权限,也就撤消了他们执行此命令 的各种变化形式的能力。

image


不能单独授予 update statistics 的变化形式 (例如, update index statistics)。也就是说,不能发出以下命令:

grant update all statistics to harry

但是,可以编写存储过程来控制谁执行这些命令。例如,以下命令授予

Billy authors 表上执行 update index statistics 的权限:

create proc sp_ups as

update index statistics on authors go

revoke update statistics on authors from billy go

grant execute on sp_ups to billy

不能在列级授予和撤消 delete statistics 权限。

尽管 Adaptive Server truncate table 作为一个全局、杂类审计进行审 计,但是它不审计 update statistics。为了使 truncate table update statistics 的审计追踪保持清晰明了, Sybase 建议您在授予用户执行权限 的存储过程中包括这两条命令,如上所述。

授予代理和会话授权

授予执行 set proxy set session authorization 的权限允许被授予者在 Adaptive Server 中充当另一个登录。 set proxy set session authorization 相同,只是 set session authorization 遵循 SQL 标准,而 set proxy Transact-SQL 扩展。

要授予 set proxy set session authorization 权限,您必须处于 master

数据库中。


grant set proxy 命令中指定的名称必须是数据库中的有效用户,即 必须是数据库的 sysusers 表中的名称。

grant all 并不包括 set proxy set session authorization 权限。

可以用 grant set proxy 逐步限制角色。例如,可以先限制 sa_role,然 后再限制 sso_role

grant set proxy to joe restrict role sa_role grant set proxy to joe restrict role sso_role

不能对单个角色不限制。必须撤消 set proxy 才能撤消所有角色的权 限。

在共享磁盘集群中授予权限

如果尝试在本地临时数据库中向用户定义的角色授予权限,则 grant 将 失败。

向角色授予特权

授予角色的权限会替换授予用户或组的权限。例如,假定授予了 John 系统安全员角色,且 sso_role 被授予访问 sales 表的权限。如果撤消 John 访问 sales 表的个人权限,他仍可以访问 sales 表,因为他的角色权限覆 盖了他的个人权限。

然而, grant execute 权限不会阻止没有指定角色的用户被独立地授予存 储过程的执行权限。若要确保只有系统安全员才能被授予某个存储过程 的执行权限,可在该存储过程内使用 proc_role 系统函数。该函数检查调 用用户是否有执行过程的正确权限。请参见 proc_role

撤消 public 或组的特权

撤消 “public”或组的特定权限同样会撤消被单独授予此权限的用户的 该权限。例外情况是谓词特权的授予和撤消。请参见 《安全性管理指 南》中的 “Adaptive Server 如何将谓词特权保存在 sysprotects 中”

标准 符合 ANSI SQL 的级别符合初级标准。grant dbcc 也是 Transact-SQL 扩展。

grant dbcc 以及授予组权限和授予 set proxy 都是 Transact-SQL 扩展。授予

set session authorization (功能与 set proxy 相同)符合 ANSI 标准。

权限 grant 的权限检查因您的细化权限设置而异。


image

细化权限已启用 在启用细化权限的情况下,用户通常可以使用下列特权管理特权之一来执行

grant 命令,具体视被授予的特权或权限而定。

对于服务器范围特权,您必须是具有 manage server permissions 特权或 manage security permissions 特权的用户。

对于数据库范围特权,您必须是具有 manage database permissions 特权的用户。

对于对象特权,您必须是对象所有者或具有 manage any object permission 特权 的用户。

要执行 grant default,您必须是数据库所有者或对数据库具有 own database 特 权的用户。

有关详细信息,请参见 1- 23 “管理方 (启用细化权限时)”一列。 细化权限已禁用 在禁用细化权限的情况下,可授予的系统特权限于 create databasecreate

defaultcreate functioncreate procedurecreate rulecreate tablecreate

viewconnectset proxy set tracing

命令执行 – 只有系统管理员才能授予 create databaseconnect set tracing 权 限,且只能在 master 数据库中授予这些权限。只有系统安全员可以授予 create trigger 权限。

要执行 grant default,您必须是数据库所有者或具有 sa_role 的用户。 数据库一致性检查 – 只有系统管理员才能运行 grant dbcc 命令。

数据库对象访问权授予 – 缺省情况下,数据库对象的权限授予给对象所有 者。对象所有者可将其自己的数据库对象的权限授予其他用户。

函数 – 只有系统管理员才能授予对内置函数的权限。

加密列 – 只有系统安全员和密钥管理者才具有创建加密密钥的隐式权限。

代理和会话授权 – 只有系统安全员才能授予 set proxy set session authorization 权限,且只能在 master 数据库中授予这些权限。授予执行 set proxy set session authorization 的权限允许被授予者在服务器中充当另一个登 录。 set proxy set session authorization 相同,只是 set session authorization 遵 循 ANSI92 标准,而 set proxy Transact-SQL 扩展。

系统表 – 数据库所有者可授予对系统表的缺省权限。


审计 sysaudits event extrainfo 列中的值如下:


事件

审计选项

审计的命令或访问权限

extrainfo 中的信息

40

grant

grant

角色 – 当前活动角色

关键字或选项 grant 语句的完整命令文本

先前值 NULL

当前值 NULL

其它信息 NULL

代理信息 set proxy 有效时的初始登录名

另请参见 目录存储过程 sp_column_privileges, sp_table_privileges.


命令 create role, revoke, setuser, set.

函数 proc_role show_role .

系统过程 sp_addgroup, sp_adduser, sp_changedbowner, sp_changegroup, sp_dropgroup, sp_dropuser, sp_helpgroup, sp_helprotect, sp_helpuser, sp_role.




--------------------------------------华丽的分割线-------------------------------------------------------------------------
之前就已经研发成功了能够从Sybase SQL Anywhere的DB文件中恢复数据的工具:ReadASADB。
此工具支持ASA v5.0,v6.0,v7.0,v8.0,v9.0,v10.0,v11.0,v12.0等版本。
恢复Sybase SQL Anywhere的工具在国内应该算首创。

ReadASADB功能
能够从损坏的SQL Anywhere数据文件(.db)和UltraLite数据文件(.udb)上提取数据的非常规恢复工具

  1. 适用于所有的SQL Anywhere版本    包括:5.x,6.x,7.x,8.x,9.x,10.x,11.x,12.x
  2. 适用于所有的UltraLite版本
  3. 能够恢复出来表结构和数据
  4. 能够恢复自定义数据类型
  5. 能够恢复存储过程等对象的语法
  6. 能够导出到目标数据库
  7. 能够导出到SQL文件并生成导入脚本
  8. 支持多种字符集  包括:cp850、cp936、gb18030、utf8等
  9. 能够恢复未加密或者简单加密类型的数据
  10. 简单易用
  11. 限制:不支持AES加密的数据文件
请参考:研发成功了从Sybase SQL Anywhere的DB文件上恢复数据的工具
            SQL Anywhere数据库非常规恢复工具ReadASADB使用介绍

ReadASADB适用场景

各种误操作:

  1. 误截断表(truncate table)
  2. 误删除表(drop table)
  3. 错误的where条件误删数据
  4. 误删除db或log文件
  5. 误删除表中的字段

本工具的应用场景:

1.因为物理磁盘故障、操作系统、系统软件方面或者掉电等等原因导致的Sybase SQL Anywhere数据库无法打开的情况;
2.误操作,包括truncate table,drop table,不正确的where条件导致的误删除等;
Sybase SQL Anywhere无法打开时,比较常见的错误是:Assertion failed。
如:
1、Internal database error *** ERROR *** Assertion failed:201819 (8.0.1.2600) Checkpoint log: invalid bitmap page -- transaction rolled back
2、Internal database error *** ERROR *** Assertion failed:201819 (8.0.1.2600) Page number on page does not match page requested -- transaction rolled back
3、Internal database error *** ERROR *** Assertion failed:200502 (9.0.2.2451) Checksum failure on page 23 -- transaction rolled back
4、File is shorter than expected
5、Internal database error *** ERROR *** Assertion failed: 201116 Invalid free list index page found while processing checkpoint log -- transaction rolled back
6、*** ERROR *** Assertion failed: 51901 Page for requested record not a table page or record not present on page等等。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------