向 SQL Server 中的检查器工作空间组件授予权限

地理数据库管理员必须向将要访问检查器工作空间的所有用户授予表的特定权限:此操作可以通过创建数据库角色及向各个用户分配角色来完成。

注注:

对示例进行复制和粘贴可能会导致语法错误。

授予权限

在 SQL Server Management Studio 中,通过方案向检查器工作空间表授予权限。示例脚本显示了如何将现有成员从角色中移除并停止角色。然后重新创建角色并通过方案将权限分配至此角色。

USE [revdb]
GO
EXEC sp_droprolemember 'rev_editor', 'giseditor'
GO
EXEC sp_droprole 'rev_editor'
GO
EXEC sp_addrole 'rev_editor', 'rev'
GO
GRANT DELETE ON SCHEMA::[rev] TO [rev_editor]
GRANT EXECUTE ON SCHEMA::[rev] TO [rev_editor]
GRANT INSERT ON SCHEMA::[rev] TO [rev_editor]
GRANT SELECT ON SCHEMA::[rev] TO [rev_editor]
GRANT UPDATE ON SCHEMA::[rev] TO [rev_editor]
GO
EXEC sp_droprolemember 'rev_viewer', 'gisviewer'
GO
EXEC sp_droprole 'rev_viewer'
GO
EXEC sp_addrole 'rev_viewer', 'rev'
GO
GRANT SELECT ON SCHEMA::[rev] TO [rev_viewer]
GO

验证角色

将列出角色。

EXEC sp_helprolemember 'rev_editor'
GO
EXEC sp_helprolemember 'rev_viewer'
GO

验证角色权限

将列出分配至角色的权限。

select dp.NAME AS principal_name,
 dp.type_desc AS principal_type_desc,
 o.NAME AS object_name,
 p.permission_name,
 p.state_desc AS permission_state_desc 
 from sys.database_permissions p
 left OUTER JOIN sys.all_objects o
 on p.major_id = o.OBJECT_ID
 inner JOIN sys.database_principals dp
 on p.grantee_principal_id = dp.principal_id
 where dp.NAME in ('rev_editor','rev_viewer')
GO
提示提示:

如果用户有权修改数据库方案和添加自定义错误描述,则仅向用户授予选择、更新、插入和删除 RevAdminCustomFields 和 RevAdminDescriptions 表的权限。

创建编辑器用户

用户应该有其自己的登录名。下例显示如何创建编辑器 ArcSDE 用户。

创建编辑器登录。

USE master
GO
EXEC sp_addlogin N'giseditor', 'gis$editor', @logindb, @loginlang
GO

创建用于登录 REVDB 的用户。

USE [revdb]
GO
CREATE USER [giseditor] FOR LOGIN [giseditor]
GO

向编辑器角色添加用户。

USE [revdb]
GO
EXEC sp_addrolemember N'rev_editor', N'giseditor'
GO

创建查看器用户

用户应该有其自己的登录名。下例显示如何创建查看器 ArcSDE 用户。

创建查看器登录。

USE master
GO
EXEC sp_addlogin N'gisviewer', 'gis$viewer', @logindb, @loginlang
GO

创建用于登录 REVDB 的用户。

USE [revdb]
GO
CREATE USER [gisviewer] FOR LOGIN [gisviewer]
GO

向编辑器角色添加用户。

USE [revdb]
GO
EXEC sp_addrolemember N'rev_viewer', N'gisviewer'
GO
9/9/2014