2011-10-27 41 views
1

SQL Server登录和数据库用户之间有什么区别,以及如何使用我的代码中的用户授予每个用户的权限,因为连接字符串仅使用登录名?SQL Server登录帐户和数据库用户之间的区别?

+0

我会建议你看看,了解有关如何DBMS实际上在用户方面和他们的访问权限,权限的工作,发布这样一个宽泛的问题 – aleafonso

回答

0

我认为这是一个非常有用的问题。只需添加我的两分钱:从msdn:

登录是安全主体,或可以通过安全系统进行身份验证的实体。用户需要登录才能连接到SQL Server。您可以基于Windows主体(例如域用户或Windows域组)创建登录,也可以创建不基于Windows主体(例如SQL Server登录)的登录。 注意注意

要使用SQL Server身份验证,数据库引擎必须使用混合模式身份验证。有关更多信息,请参阅选择认证模式。

作为安全主体,可以将权限授予登录。登录的范围是整个数据库引擎。要连接到SQL Server实例上的特定数据库,必须将登录名映射到数据库用户。数据库内的权限被授予并拒绝给数据库用户,而不是登录。具有整个SQL Server实例作用域的权限(例如,CREATE ENDPOINT权限)可以授予登录名。

http://msdn.microsoft.com/en-us/library/aa337562.aspx#Background

3

SQL Server登录存储信息以在服务器级别对用户进行身份验证。

用户通过身份验证后,您可能希望授权他使用服务器托管的某些数据库。通过将登录映射到数据库用户或换言之,将登录访问权授予一个或多个数据库。

你想通过代码设置什么特权? 例如,您可以使用SMO来管理您的服务器,或者您可以使用SQL语句(如GRANT)来更改权限。

+0

之前我不明白的是如何使用我的代码中的SQL用户首先设置专用权限并且secnod不允许特定用户输入或访问数据库? – ykh

相关问题