SQL Server 2005 数据库安全设置全解析
1. 数据库安全概述
数据库安全是保障数据不被非法访问和使用的重要手段。在 SQL Server 2005 中,权限是授予(或拒绝)主体访问可保护对象的权利。数据库安全的 80% 在于保护表和存储过程,从数据库设计的角度来看,这是非常关键的。数据库层面的主要主体是用户,下面会围绕用户使用可保护对象的权限展开介绍,主要包括用户模拟、可授予的权限、角色和架构三个方面。
2. 用户模拟
用户模拟允许一个用户临时模拟另一个用户。在 SQL Server 2000 及更早版本中, dbo
若要模拟其他用户,会使用 SETUSER
,但该工具不适合在生产代码中使用。SQL Server 2005 引入了模拟概念,通过 EXECUTE AS
语句实现,使用 REVERT
语句可返回上一个安全上下文。
以下是一个用户模拟服务器系统 sysadmin
角色成员的示例:
-- 注意:此代码可能不适合在你的服务器上执行
USE Master
GO
CREATE LOGIN system_admin WITH PASSWORD = 'tooHardToEnterAndNoOneKnowsIt'
EXEC sp_addsrvrolemember 'system_admin','sysadmin'
CREATE LOGIN louis with PASSWORD = 'reasonable', DEFAUL