SQL Server 中地理数据库的权限

权限用于确定用户有权对数据和数据库执行何种操作。应根据人员在组织中所执行的工作类型来分配权限。该人员是否为地理数据库的管理员? 他/她是否需要编辑或创建数据? 或者该人员是否仅需查询数据?

可在不同级别设置用户权限。本主题列出了以下普通用户类型的数据库和数据集权限:数据查看人员、数据编辑人员、数据创建人员和地理数据库管理员

可以使用 SQL Server 工具或 Transact SQL 语句管理用户数据库权限。

使用 ArcGIS 客户端授予地理数据库中数据集的权限和与之相关的撤消操作必须由数据所有者完成。

注:

默认情况下,将为公共数据库角色授予数据库的 CONNECT 权限。如果撤销公共数据库的此权限,则必须向特定角色或登录帐户明确授予数据库的 CONNECT 权限。

最低权限

用户类型数据库权限数据集权限备注

数据查看人员

SELECT

如果您有权读取数据库中的所有表,则可为用户指定 db_datareader 数据库角色;否则,授予特定表和视图的 SELECT 权限。

数据编辑人员

  • 对其他用户数据集的 SELECT、INSERT、UPDATE 和 DELETE 权限
  • 对与待编辑数据关联的存储过程的 EXECUTE 权限

如果使用 ArcGIS 为注册为传统版本化的要素类或表授予 SELECT、INSERT、UPDATE 和 DELETE 权限,则这些权限会自动授予到与之相关联的版本化视图中。用户使用 SQL 和版本化视图进行编辑时将需要这些权限。

数据创建人员

  • CREATE TABLE
  • CREATE PROCEDURE
  • CREATE VIEW

创建数据的用户必须具有与其数据库用户名同名的默认方案。例如,如果用户名为 simon,则默认方案名称也必须为 simon。如果两者不同,用户将无法创建对象(如要素类)。

地理数据库管理员

如果地理数据库管理员是名为 sde 的用户并且该用户不会拥有系统对象外的地理数据库中的数据,在创建了地理数据库之后,该 sde 用户仅需能够连接到地理数据库。

对版本化数据集的 SELECT、INSERT、UPDATE 和 DELETE 权限

更新地理数据库或者允许 sde 用户删除或查看所有连接需要附加权限。

创建或升级地理数据库的权限

下表列出了在 SQL Server 中创建或升级地理数据库所必须使用的用户和权限。

地理数据库的类型创建地理数据库的用户和权限升级地理数据库的用户和权限

Sde 方案地理数据库

sde 用户需要以下权限:

  • CREATE FUNCTION
  • CREATE PROCEDURE
  • CREATE TABLE
  • CREATE VIEW

必须将 sde 用户添加到要升级的数据库中的 db_owner 角色。

此外,也可由 db_owner 数据库角色或 sysadmin 固定服务器角色中的用户(除 sde 之外)执行升级操作。

Dbo 方案

dbo 用户已经具有在数据库中创建地理数据库所需的权限。

dbo 用户已经具有升级所需的权限。

此外,也可由 db_owner 数据库角色中的用户执行升级操作。

其他权限

以下功能需要在地理数据库中具有其他权限:

  • 要删除地理数据库连接,必须将 sde 方案地理数据库中的地理数据库管理员(sde 用户)添加到 processadmin 固定服务器角色,并向其授予数据库的 VIEW DEFINITION 权限。创建企业级地理数据库地理处理工具会将此角色和权限授予 sde 用户。可以在创建地理数据库后撤销此权限并将用户从 processadmin 角色中移除,但执行此操作后 sde 用户无法将用户从地理数据库断开。
  • 必须为所有将要拥有 XML 列的用户授予对于用于建立 XML 列索引的全文目录的 REFERENCES 权限。
  • 如果要更改地理数据库配置来在地理数据库中使用共享日志文件表,则所有用户都需要在数据库中具有 CREATE TABLE 权限。