2011-10-26 163 views
0

我创建了连接到数据库的连接字符串,还有我可以为每个数据库创建特定权限的用户。如果我可以通过我的代码中的连接字符串访问该数据库,而不使用任何用户为数据库创建的用户,那么用户有多好?请解释。谢谢。SQL Server登录和用户?

+0

你使用了什么连接字符串属性?你的安全设置是否设置为true? –

+0

根本不清楚你在问什么。不是你的问题的答案:http://stackoverflow.com/questions/7902766/implement-database-security足够? –

+0

为数据库分配的用户dosn't意味着登录,我如何使用户的用户,如果我不能使用它在代码或sql登录? – ykh

回答

2

您只能以用户身份访问数据库。
无法使用没有用户的连接字符串(或使用Windows身份验证)。

+1

您可以在未明确指定用户的情况下使用集成安全性。 –

+0

@TomasJansson我认为这将有资格使用Windows身份验证。 –

+0

@AndrewBarber哦......错过了那部分:)。这是事实,那就是Windows身份验证。 –

0

审计目的是其中的一个用途。你知道哪些用户执行了什么,如果你的表存储这些信息。

例如SUSER_SNAME()USER_NAME()返回执行查询的人员的用户名。

在使用Sql Server auth的ASP.NET上,执行语句的人员的用户名将始终为连接字符串中指定的用户名。例如,对于使用集成Windows身份验证的Windows应用程序,将从他的域帐户中选取用户名,但仍需要将其映射为特定数据库上的用户。

0

您通常使用您在连接字符串内的数据库中创建的用户之一。除非您正在使用集成身份验证,否则您正在模拟用户,并且该用户也需要在数据库中创建。无论哪种方式,您都需要数据库中的用户通过连接字符串来访问它。

0

只有三个独立用户的快速好处。

1)直接访问数据库:如果他们使用SQL Server Management Studio(或类似的)进行即席查询,您希望每个用户都有一个单独的用户名和密码。

2)审计:通过使用不同的用户名和密码,就可以登录活动向特定用户,这样你就会知道到底是谁不小心碰到命令DROP TABLE CUSTOMERS

3)安全性:不同的用户可以被赋予不同的层次因此没有人不应该能够不小心运行命令DROP TABLE CUSTOMERS

此外,您可以设置连接字符串,以便它接受用户名和密码(如果您愿意),以便您的客户端应用程序将仍然要求用户的证书来验证他们需要的访问级别(如果这对您的应用程序是适合的)。

相关问题