当某个数据库中的某一过程依赖另一个数据库中的对象时,会发生跨数据库所有权链接。 跨数据库所有权链与单个数据库中的所有权链接的工作方式相同,不同之处在于完整的所有权链要求将所有对象拥有者映射为同一登录帐户。 如果同一登录帐户拥有源数据库中的源对象和目标数据库中的目标对象,则 SQL Server 不会检查对目标对象的权限。
默认情况下为关
从 SQL 2000 SP3 开始,跨数据库的所有权链接默认情况下为关。 Microsoft 建议禁用跨数据库所有权链接,因为它会使您面临以下安全风险:
· 数据库所有者和 db_ddladmin 成员或 db_owners 数据库角色可创建其他用户所拥有的对象。 这些对象的目标可能是其他数据库中的对象。 这表示如果启用跨数据库所有权链接,您必须完全信任在所有数据库中具有数据的这些用户。
· 具有 CREATE DATABASE 权限的用户可创建新数据库以及附加现有数据库。 如果启用了跨数据库所有权链接,则这些用户可以从新创建的或他们创建的附加数据库中访问他们在其中没有权限的其他数据库中的对象。
启用跨数据库所有权链接
只能在完全信任高级权限用户的环境中启用跨数据库所有权链接。 可在设置所有数据库,或使用 Transact-SQL 命令 sp_configure 和 sp_dboption 选择性地设置特定数据库期间,配置跨数据库所有权链接。
SQL Server 2000 SP3 引入了 Cross DB Ownership Chaining 选项作为一项安全增强功能,它可允许您配置跨数据库所有权链接。 若要选择性地配置 SQL Server 2005 或更高版本中的跨数据库所有权链接,但该链接对于服务器未打开,请使用 sp_configure 打开该链接。 然后,使用包含 SET DB_CHAINING ON 的 ALTER DATABASE 命令仅为需要跨数据库所有权链接的数据库配置跨数据库所有权链接
。
动态 SQL
在执行了动态创建的 SQL 语句的情况下跨数据库所有权链接将不起作用,除非同一用户同时存在于两个数据库中。 您可以通过创建访问另一数据库中数据的存储过程并使用存在于两个数据库中的证书对过程签名,在 SQL Server 2005 中解决此问题。 这可为用户提供访问该过程所使用的数据库资源的权限,而不必向他们授予数据库访问权或权限。
以上内容转自:http://msdn.microsoft.com/zh-cn/library/bb669059.aspx
分享到:
相关推荐
3.利用SQL Server配置管理器配置进行SQL Server 2005网络配置,启用默认实例和命名实例的TCP/IP协议。 4.利用SQL Server外围配置器配置数据库引擎的服务及远程连接,设置为“本地连接和远程连接”,选择“同时使用...
3.利用SQL Server配置管理器配置进行SQL Server 2005网络配置,启用默认实例和命名实例的TCP/IP协议。 4.利用SQL Server外围配置器配置数据库引擎的服务及远程连接,设置为“本地连接和远程连接”,选择“同时使用...
3.利用SQL Server配置管理器配置进行SQL Server 2005网络配置,启用默认实例和命名实例的TCP/IP协议。 4.利用SQL Server外围配置器配置数据库引擎的服务及远程连接,设置为“本地连接和远程连接”,选择“同时使用...
3.利用SQL Server配置管理器配置进行SQL Server 2005网络配置,启用默认实例和命名实例的TCP/IP协议。 4.利用SQL Server外围配置器配置数据库引擎的服务及远程连接,设置为“本地连接和远程连接”,选择“同时使用...
SQL Server 2005 启用远程连接
SQLServer数据库发布订阅操作文档
SQLServer2005附加数据库和启用远程连接的步骤.pdf
3.利用SQL Server配置管理器配置进行SQL Server 2005网络配置,启用默认实例和命名实例的TCP/IP协议。 4.利用SQL Server外围配置器配置数据库引擎的服务及远程连接,设置为“本地连接和远程连接”,选择“同时使用...
3.利用SQL Server配置管理器配置进行SQL Server 2005网络配置,启用默认实例和命名实例的TCP/IP协议。 4.利用SQL Server外围配置器配置数据库引擎的服务及远程连接,设置为“本地连接和远程连接”,选择“同时使用...
3.利用SQL Server配置管理器配置进行SQL Server 2005网络配置,启用默认实例和命名实例的TCP/IP协议。 4.利用SQL Server外围配置器配置数据库引擎的服务及远程连接,设置为“本地连接和远程连接”,选择“同时使用...
SQLserver2000〔Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server不存在或访问被拒绝 分类: Technology2007-04-20 19:076126人阅读评论(1)收藏举报 SQLserver2000,打开服务管理器时出现错误:〔Microsoft]...
有时候会遇到这样的问题:未启用当前数据库的 SQL Server Service Broker,因此查询通知不受支持。如果希望使用通知,请为此数据库启用 Service Broker。
1、你是SQL Server 数据库服务器的管理员。一台服务器名为SQL7,另一台叫SQL2000,在SQL7 上运行SQL Server 7.0,在SQL2000上运行着SQL Server 2000。SQL2000的网络库配置如下所示:(原题不完整) SQL7的网络库有...
对于 SQL Server 2000 中的 Microsoft 数据访问组件 (MDAC) 客户端,请使用 SQL Server 2000 客户端网络实用工具。对于 SQL 本机客户端,请使用“添加或删除程序”卸载 SQL 本机客户端。在群集中,请卸载所有节点中...
7.2.1 在SQL Server Management Studio中查看数据库的信息 7.2.2 使用T-SQL查看数据库信息 7.2.3 检查系统和示例数据库 7.2.4 检查数据库对象 7.3 创建数据库 7.3.1 在SQL Server Management Studio中创建数据库 ...
7.2.1 在SQL Server Management Studio中查看数据库的信息 7.2.2 使用T-SQL查看数据库信息 7.2.3 检查系统和示例数据库 7.2.4 检查数据库对象 7.3 创建数据库 7.3.1 在SQL Server Management Studio中创建数据库 ...
必须对服务器启用 SQL Server 混合模式身份验证,在尝试建立连接时必须设置 UID 和 PWD 连接属性,UID 和 PWD 必须映射到有效的 SQL Server 用户和密码. 注意:包含右大括号 (}) 的密码必须使用另一个右大括号进行转义,...
SQL SERVER定时作业的设置方法 <br>里面的部分内容贴出: 1、管理->SQL Server代理->作业(按鼠标右键)->新建作业-> <br>2、新建作业属性(常规)->名称[自定义本次作业的名称]->启用的方框内是勾号-> <br>...
7.2.1 在SQL Server Management Studio中查看数据库的信息 7.2.2 使用T-SQL查看数据库信息 7.2.3 检查系统和示例数据库 7.2.4 检查数据库对象 7.3 创建数据库 7.3.1 在SQL Server Management Studio中创建数据库 ...
Excel根据表格,生成sql语句 ,生成建表语句,自行到数据库中执行, 需要excel启用宏,按规则填充表格后可生成表格目录及生成sqlserver语句。