在 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 登录账户 |
|
|
Dbo(映射到特定数据库的 dbo) | 操作系统或 SQL Server 登录账户 |
|
|
Sde | SQL Server 登录账户 |
|
|
Sde | 操作系统登录账户 |
|
|