一、信任域介绍
信任域(domain)是指在Windows Server操作系统下建立的一个逻辑概念,用来管理一组共享信息,这组信息可以是安全信息(如用户帐户和密码)、网络连接信息、计算机配置信息、用户配置信息等等。信任域之间可以建立信任关系,以便实现跨域访问共享资源。
二、SQL Server中的信任域
1. SQL Server中的登录
SQL Server中的登录分为两种,一种是Windows身份验证模式,一种是混合模式。Windows身份验证模式就是使用Windows中的域用户帐户或本地用户帐户进行登录,而使用混合模式则需要用户提供SQL Server特定的登录信息。
-- 创建一个Windows身份验证模式的登录
CREATE LOGIN [Domain\User] FROM WINDOWS;
-- 创建一个混合模式的登录
CREATE LOGIN [Yanqi] WITH PASSWORD = 'yanqi123';
使用Windows身份验证模式登录时,对应的域中需要存在一个用户帐户,该用户帐户需要有映射到SQL Server中的登录的权限,这样才能正常登录。
2. Windows身份验证模式下的信任域
在Windows身份验证模式下,SQL Server中的信任域依赖于Windows的域。如果两个域之间建立了信任关系,则在另一个域中的用户也可以使用Windows身份验证模式进行登录。
3. 混合模式下的信任域
在混合模式下,SQL Server中的信任域与Windows域之间没有直接的关系。SQL Server中的授权是基于登录的,因此登录必须是唯一的。如果存在两个相同的登录名,则必须为这两个登录名指定不同的默认数据库。
-- 创建包含Windows身份认证登录的混合模式登录
CREATE LOGIN [Domain\User] WITH PASSWORD = 'password';
-- 为登录指定默认数据库
ALTER LOGIN [Domain\User] WITH DEFAULT_DATABASE = MyDB;
混合模式下的信任域是通过将登录映射到不同的用户和角色实现的。因此,登录可以被映射到多个用户和角色,以实现对不同SQL Server对象的授权。
三、信任域的应用场景
1. 多个Windows域中的SQL Server实例共享
当多个Windows域需要访问同一个SQL Server实例时,可以在两个域之间建立信任关系,以便在另一个域中的用户也可以使用Windows身份验证模式进行登录。
2. SQL Server实例之间共享数据
如果有多个SQL Server实例共享同一个数据集,可以在这些实例之间建立信任关系,以便实现跨域访问共享资源。
四、使用信任域构建安全数据库的步骤
1. 创建登录
首先,需要创建一个带有必要权限的登录,以便用户可以在其中进行资源访问。
-- 创建一个Windows身份验证模式的登录
CREATE LOGIN [Domain\User] FROM WINDOWS;
2. 创建用户
创建一个属于登录的用户,为其指定默认数据库和Schema。
-- 创建用户并指定数据库和Schema
USE MyDB;
CREATE USER [Domain\User] FOR LOGIN [Domain\User] WITH DEFAULT_SCHEMA = dbo;
3. 授权
在用户中授予需要的权限。可以授予对象级权限或所需的所有权限。
-- 为用户授予某个对象的SELECT权限
GRANT SELECT ON dbo.MyTable TO [Domain\User];
当用户在与另一个信任域或实例的SQL Server数据库建立有意义的链接时,需要为链接授予所需的权限。
-- 为链接授予所需的权限
GRANT CONNECT TO [AnotherDomain\User] VIA [TrustRelationship];
4. 测试
最后,测试新系统是否成功建立。
五、总结
信任域是Windows Server操作系统下的一个逻辑概念,用来管理一组共享信息。在SQL Server中,信任域可以用来实现多个Windows域中的SQL Server实例共享,也可以用来实现SQL Server实例之间共享数据。通过创建登录、创建用户并授权,最后测试系统是否成功建立,可以使用信任域构建安全数据库。