windows authentication 和sql authentication是什么意思?

问题描述:

windows authentication 和sql authentication是什么意思?
windows 服务验证和sql服务验证有什么区别.都什么时候用啊?有什么用途啊 ? 给个链接最好的拉.
1个回答 分类:综合 2014-10-10

问题解答:

我来补答
我提供一些材料给你吧!
验证方法选择
本文对验证(authentication)和授权(authorization)这两个概念作不同的解释.验证是指检验用户
的身份标识;授权是指允许用户做些什么.在本文的讨论中,验证过程在用户登录SQL Server的时候出现,
授权过程在用户试图访问数据或执行命令的时候出现.
构造安全策略的第一个步骤是确定SQL Server用哪种方式验证用户.SQL Server的验证是把一组帐户、密
码与Master数据库Sysxlogins表中的一个清单进行匹配.Windows NT/2000的验证是请求域控制器检查用户身
份的合法性.一般地,如果服务器可以访问域控制器,我们应该使用Windows NT/2000验证.域控制器可以是
Win2K服务器,也可以是NT服务器.无论在哪种情况下,SQL Server都接收到一个访问标记(Access Token).
访问标记是在验证过程中构造出来的一个特殊列表,其中包含了用户的SID(安全标识号)以及一系列用户所
在组的SID.正如本文后面所介绍的,SQL Server以这些SID为基础授予访问权限.注意,操作系统如何构造访
问标记并不重要,SQL Server只使用访问标记中的SID.也就是说,不论你使用SQL Server 2000、SQL Server
7.0、Win2K还是NT进行验证都无关紧要,结果都一样.
如果使用SQL Server验证的登录,它最大的好处是很容易通过Enterprise Manager实现,最大的缺点在于
SQL Server验证的登录只对特定的服务器有效,也就是说,在一个多服务器的环境中管理比较困难.使用SQL
Server进行验证的第二个重要的缺点是,对于每一个数据库,我们必须分别地为它管理权限.如果某个用户
对两个数据库有相同的权限要求,我们必须手工设置两个数据库的权限,或者编写脚本设置权限.如果用户数
量较少,比如25个以下,而且这些用户的权限变化不是很频繁,SQL Server验证的登录或许适用.但是,在几
乎所有的其他情况下(有一些例外情况,例如直接管理安全问题的应用),这种登录方式的管理负担将超过它
的优点.
允许数据库访问
在数据库内部,与迄今为止我们对登录验证的处理方式不同,我们可以把权限分配给角色而不是直接把
它们分配给全局组.这种能力使得我们能够轻松地在安全策略中使用SQL Server验证的登录.即使你从来没
有想要使用SQL Server登录帐户,本文仍旧建议分配权限给角色,因为这样你能够为未来可能出现的变化做
好准备.
创建了数据库之后,我们可以用sp_grantdbaccess存储过程授权DB_Name Users组访问它.但应该注意的
是,与sp_grantdbaccess对应的sp_denydbaccess存储过程并不存在,也就是说,你不能按照拒绝对服务器访
问的方法拒绝对数据库的访问.如果要拒绝数据库访问,我们可以创建另外一个名为DB_Name Denied Users
的全局组,授权它访问数据库,然后把它设置为db_denydatareader以及db_denydatawriter角色的成员.注
意SQL语句权限的分配,这里的角色只限制对对象的访问,但不限制对DDL(Data Definition Language,数
据定义语言)命令的访问.
正如对登录过程的处理,如果访问标记中的任意SID已经在Sysusers系统表登记,SQL将允许用户访问数
据库.因此,我们既可以通过用户的个人NT帐户SID授权用户访问数据库,也可以通过用户所在的一个(或
者多个)组的SID授权.为了简化管理,我们可以创建一个名为DB_Name Users的拥有数据库访问权限的全局
组,同时不把访问权授予所有其他的组.这样,我们只需简单地在一个全局组中添加或者删除成员就可以增
加或者减少数据库用户.
MS Access数据库连接
用DSN连接并且没有用户名和密码:
用DSN连接并且有用户名和密码:
用实际的数据库绝对路径连接:
用实际的数据库相对路径连接:
MS SQL Server数据库连接
用DSN连接:
不用DSN连接:
FoxPro数据库连接
Oracle数据库连接:
 
 
展开全文阅读
剩余:2000