SQL Server 地理数据库所有者的比较

Microsoft SQL Server 数据库中的地理数据库内,组成地理数据库的表、视图、函数和存储过程可以归名为 sde 的数据库用户或 dbo 数据库用户所有。 拥有地理数据库的用户都将被视为地理数据库管理员。 由于用户名和方案名在地理数据库中必须匹配,因此 sde 用户拥有的地理数据库称为 sde 方案地理数据库,而 dbo 拥有的地理数据库称为 dbo 方案地理数据库。

注:

重要的是,应当了解 SQL Server 如何管理对数据及其他对象的访问。 因此,如果您不熟悉 SQL Server 安全模型,请阅读 Microsoft SQL Server 文档。 SQL Server 在实例级别上对登录账户进行身份验证,并在数据库级别授权相应用户。 授予的不同权限可以应用于整个实例、特定数据库或数据库中的数据。 这可能会影响您决定使用哪种类型的地理数据库所有者。

创建地理数据库时连接的登录名决定了哪个数据库用户拥有地理数据库。 如果您连接的操作系统登录账户或 SQL Server 登录账户已映射到数据库中的 dbo 用户,则会创建一个 dbo 方案地理数据库。 如果您连接的操作系统或 SQL Server 登录账户已映射到数据库中名为 sde 的用户,则会创建一个 sde 方案地理数据库。

Sde 用户

数据库中的 sde 用户可以与经 SQL Server 身份验证的登录账户或经操作系统身份验证的登录账户相关联。 sde 用户必须对名为 sde 的模式具有权限,并且该模式必须是 sde 用户的默认模式。 sde 用户还必须获得对数据库的权限,以使用户创建和管理地理数据库。

Dbo 用户

dbo 用户及其默认模式自动存在于所有数据库中。 登录账户可以通过两种方法中的任一种成为数据库中的 dbo 用户:

  • 通过创建或者成为特定数据库的所有者
  • 通过成为 sysadmin 固定服务器角色的成员

映射到特定数据库中的 dbo 用户的登录名在该数据库中具有最高的权限;因此,他们拥有足够的权限来创建和管理地理数据库。 映射到特定数据库中 dbo 用户的登录账户在 SQL Server 实例或其他数据库中并不具有高级权限,除非向该登录账户明确授予此类权限。

属于 sysadmin 固定服务器角色成员的登录账户被映射到 SQL Server 实例中每个数据库的 dbo 用户,而且在 SQL Server 实例中拥有最高可能权限。 此类登录账户拥有足够的权限,能够创建和管理地理数据库,并可在实例中创建、修改、删除及管理其他可获得的数据。

dbo 用户拥有的所有数据库对象均存储在 dbo 方案中。

比较表

两种类型的地理数据库方案在性能或功能上没有区别。 每个方案都各有优缺点。 选择最适合系统及所选安全模型的用户(及方案)。

下面根据使用的身份验证类型比较两种方案:

方案身份验证优点缺点

Dbo(sysadmin 成员)

操作系统或 SQL Server 登录账户

  • 如果 SQL Server 数据库管理员还担任地理数据库管理员,则最好使用 dbo 方案以避免同一个人根据需要完成的任务而使用两个不同的登录账户。
  • 如果需要多个地理数据库管理员,则可以向 sysadmin 固定服务器角色添加多个登录账户。
  • 登录账户在 SQL Server 实例中对所有可获得的数据拥有高级权限。
  • Dbo 方案地理数据库在基于云的数据库服务中不受支持。

Dbo(映射到特定数据库的 dbo)

操作系统或 SQL Server 登录账户

  • 地理数据库管理员可以在特定数据库中执行地理数据库和数据库管理。
  • 高级权限不会超出特定数据库。
  • 如果需要其他地理数据库管理员,则可以在 sysadmin 固定服务器角色中设置其他登录账户,使他们也成为此数据库中的 dbo 用户。
  • 用户在数据库中拥有高级权限。
  • 登录名必须设置为数据库的所有者,这意味着您必须使用数据库工具创建登录名和数据库,而不能依赖 创建企业级地理数据库工具来创建它们。
  • Dbo 方案地理数据库在基于云的数据库服务中不受支持。

Sde

SQL Server 登录账户

  • sde 用户仅需要在特定数据库中具有管理地理数据库的少量语句权限。
  • 如果数据库管理员和地理数据库管理员不是同一个人,则 sde 方案地理数据库很有用。 数据库管理员可以使用数据库工具创建数据库、sde 用户(具有所需权限)和 sde 方案,然后 sde 用户可以使用启用企业级地理数据库地理处理工具创建地理数据库。
  • 基于云的数据库服务中创建地理数据库时,可以使用 sde SQL Server 登录账户。
  • 只有单点登录账户可以映射到 sde 用户。
  • SQL Server 实例必须允许进行混合模式身份验证。

Sde

操作系统登录账户

  • sde 用户仅需要在特定数据库中具有创建和管理地理数据库的少量语句权限。
  • 如果数据库管理员和地理数据库管理员不是同一个人,则 sde 方案地理数据库很有用。 数据库管理员可以使用数据库工具创建数据库、sde 用户(具有所需权限)和 sde 方案,然后 sde 用户可以使用启用企业级地理数据库地理处理工具创建地理数据库。
  • 可以将现有域登录账户映射到 sde 用户。
  • SQL Server 实例仅允许操作系统身份验证的站点中,可以使用经操作系统身份验证的 sde 登录账户。
  • 只有单点登录账户可以映射到 sde 用户。
  • 如果要使用创建企业级地理数据库工具创建地理数据库,则必须先创建 sde 用户,因为该工具不会为您将 sde 用户映射到操作系统登录名。