sql server 2005数据库安全设置入门

发布时间:2020-08-29编辑:脚本学堂
有关sql server 2005数据库安全的设置入门教程,包括数据库访问验证安全、数据库与架构、分离主体和架构等配置,有需要的朋友参考下。

sql server 2005数据库安全

sql server 的数据库安全包含两个部分:身份验证和授权;
安全实体:安全实体是一个可以被授予权限的实体。安全实体包括数据库、架构和对象;
主体:在sql server 2000中作为一个用户。一个主题就是一个能够访问安全实体对象的实体。
 
1、数据库访问
sql server中的身份验证分为两级,首先要进行服务器级别的认证;
sql server 2005有两种验证用户登陆帐户的方法:
winows身份验证,优势在于它允许sql server利用操作系统的安全特性,如密码加密,密码过期,以及对密码的最少和最多的长度限制;
当运行在win2003下时,还能够利用windosw的密码策略;

2、sql server身份验证;
关于密码验证的更多细节可以参考alter login命令;
在sql server 2005中,如果在安装时选择了windows验证,则sql server默认的sa帐户会被禁止;
所有的登陆账户名,或者来自windows,或者来自sqlserver身份验证,都能从目录视图sys.server_principal中查看到,这个视图只有权限达到一定级别的用户才能够看到;
 
3、管理数据库安全性
数据库的所有者可以是登录账户名,登录账户名所拥有的唯一资源就是数据库,数据库内的所有对象都被数据库用户所拥有。
一个登录账户名可以和一个数据库用户名相同,但是他们是完全不同的概念,一个登录帐户在不同的数据库中可以表现为不同的用户名。
 
4、数据库与架构(schema)
架构被定义为有单个用户所有的一组数据库对象,并构成单独的命名空间。我们可以把架构看做是对象的容器。
 
5、分离主体和架构
在sql server 2000中,用户和架构的结合是如此紧密,以至于许多用户认为用户和架构其实是相同的概念。
在sql server2000中,如果我们创建一个名为sue的用户,sqlserver就会创建一个名为sue的架构作为用户sue的默认架构。权限被赋予用户,但是对象属于架构。
在sqlserver2005中打破了这种用户和架构之间的联系,一级和二级主体都可以拥有架构。
在sqlserver2000中,我们使用sp_adduser, sp_grantdbaccess来向数据库中添加用户和授权,在sqserver2005中,我们应该优先使用ddl create user 和 create schema,当我们创建一个用户时,我们可以选定一个默认架构,但是默认情况下架构就是dbo架构。
 
6、默认架构
有以下几个默认架构:dbo, information_schema和guest;另外还有一个sys架构,这是访问所有系统表和视图的方法。
如果没有给一个用户指定默认架构,那么其默认架构就是dbo。这样有一个坏处,就是在创建架对象时,sqlserver将会尝试在dbo架构中而不是该用户所拥有的架构中来创建对象。所以,为了避免混乱,在sqlserver2005中,我们应该在所有的对象访问和对象管理时指定架构名;