SQL Server 地理数据库所有者的比较
地理数据库是数据库中各种表、视图、函数及所保存程序的集合。在 Microsoft SQL Server 数据库中的地理数据库内,此对象集合可以归名为 sde 的数据库用户或 dbo 数据库用户所有。地理数据库的所有者即为地理数据库管理员。
重要的是,应当了解 SQL Server 如何管理对数据及其他对象的访问。因此,如果您不熟悉 SQL Server 的安全模型,请阅读 SQL Server 文档。SQL Server 在实例层级上验证登录帐户,然后在数据库层级上授权相应用户。所授予的不同权限可应用于整个实例、特定数据库或多个数据库、或者数据库中的数据。这可能会影响您决定使用哪种类型的地理数据库所有者。
创建地理数据库时您所连接的登录帐户确定了哪个数据库用户拥有地理数据库。如果您连接的 Windows 或 SQL Server 登录帐户已映射到数据库的 dbo 用户,则会创建一个 dbo 方案地理数据库。如果您连接的 Windows 或 SQL Server 登录帐户已映射到数据库中名为 sde 的用户,则会创建一个 sde 方案地理数据库。
sde 用户
数据库的 sde 用户可以与经 SQL Server 验证的登录帐户或经 Windows 验证的登录帐户相关联。sde 用户必须拥有对名为 sde 的方案的权限,而该方案必须是 sde 用户的默认方案。sde 用户还必须获得对数据库的权限,以使用户创建和管理地理数据库。
dbo 用户
dbo 用户及其默认方案自动存在于所有数据库中。登录帐户可以通过两种方法中的任一种成为数据库中的 dbo 用户:
- 通过创建或成为特定数据库的所有者
- 成为 sysadmin 固定服务器角色的成员
映射到特定数据库中 dbo 用户的登录帐户在该数据库中具有最高可能权限;因此,登录帐户拥有创建和管理地理数据库的足够权限。映射到特定数据库中 dbo 用户的登录帐户在 SQL Server 实例或其他数据库中并不具有高级权限,除非向该登录帐户明确授予此类权限。
属于 sysadmin 固定服务器角色成员的登录帐户被映射到 SQL Server 实例中每个数据库的 dbo 用户,而且在 SQL Server 实例中拥有最高可能权限。此类登录帐户拥有足够的权限,能够创建和管理地理数据库,并可在实例中创建、修改、删除及管理其他可获得的数据。
dbo 用户拥有的所有数据库对象均存储在 dbo 方案中。
哪种用户应当拥有地理数据库?
在性能或功能方面,两种地理数据库方案类型基本没有区别。但两者各有优缺点。选择最适合系统及所选安全模型的用户(及方案)。
下面根据使用的验证类型比较两种方案:
方案 | 身份验证 | 优点 | 缺点 |
---|---|---|---|
Dbo(sysadmin 成员) | Windows 或 SQL Server 登录帐户 |
|
|
Dbo(映射到特定数据库的 dbo) | Windows 或 SQL Server 登录帐户 |
|
|
Sde | SQL Server 登录帐户 |
|
|
Sde | Windows 登录帐户 |
|
|
*大多数 Windows 登录帐户,尤其是域登录帐户,都属于特定人员。此人使用该登录帐户登录他或她的计算机并访问 Windows 应用程序,包括 SQL Server。因此,当此人登录计算机时,他或她将总是以 sde 用户连接地理数据库。为了避免这一点,可创建其他 Windows 登录帐户,从而为此人提供两个登录帐户。然而,这意味着当此人想要管理地理数据库时,必须在计算机上切换登录帐户。此外,许多站点都避免为同一个人创建多个登录帐户,因为这样往往会产生安全影响并增加登录帐户管理的复杂度。