如何允许访问一个SQL Server用户?

我是一个开发人员试图播放pipe理员,并希望从我的开发机器使用SQL Server用户(“op_web”)连接到远程SQL服务器。

当我尝试从vs2008服务器资源pipe理器连接时,我可以连接到服务器,但没有列出数据库。 如果我使用服务器pipe理员用户进行连接,所有数据库按预期方式列出。

服务器是由我做的一个相对新鲜的安装。

我有

  • 允许在sql server中进行远程连接。

  • 在服务器级别创buildloginop_web

  • 在数据库级别创build一个用户,并分配到相同的名称login

  • 为用户分配angular色以允许读取和写入 – 我没有分配任何模式,用户的默认模式是dbo。

如果我使用sqlserver management studio / sqlserverauthentication和创build的loginlogin(在服务器本地),我可以按照我的预期显示和更改表数据。

远程访问使我无法select数据库。

在客户端机器上的Visual Studio中,我使用已发现的SQL Server获取下拉列表中列出的服务器名称 – 如前所述,我可以使用windows用户(pipe理员帐户)进行连接。 此外,我已经尝试从另一台物理机器负面结果。 它不像一个防火墙的问题,但我试图禁用服务器防火墙,以防万一,但没有解决它。 我有另一个数据库服务器的一切工作,我克隆了每个设置用户对用户(所以它闻起来像问题是有关的SQL Server实例,而不是用户)。

任何指向我可能错过了什么?

(这个问题是在https://stackoverflow.com/questions/1386223/how-to-allow-access-for-a-sql-server-user )

SQL Server“用户”有两个部分给他们。

  1. 服务器login。 定义为服务器级别,可能与服务器angular色关联(例如dbcreator:“dbcreator固定服务器angular色的成员可以创build,更改,删除和还原任何数据库”)。 将Windows用户映射到服务器angular色(其中一些是自动完成的,但取决于SQL Server 1的版本)

  2. 数据库用户。 这些是由数据库创build的,给定数据库angular色(例如完全控制的“dbo”(“数据库所有者”)或者“dbreader”)以便能够读取数据。 当创build这些与服务器login相关联。

您可以定义服务器和数据库angular色以提供特定的权限)。

有关更多详细信息,请参阅SQL Server联机丛书(或MSDN上)。

因此,您需要使用pipe理员帐户为您的Windows用户帐户创build一个服务器login名,并授予其访问您需要使用的数据库的权限。 如果你正在定义的东西(表,视图,存储过程等),你真的需要“dbo”的angular色,或相当一些更细粒度控制的工作。

请记住只用应用程序需要的访问来testing应用程序(例如,这是一个罕见的应用程序,可以创build/删除/更改视图或表)。


1在SQL Server 2005中,主机的本地Administrators组被映射到具有“sysadmin”服务器angular色的login名,在2008年,您将指定哪些帐户将在映像中进行映射)。

为了能够在networking上看到(远程连接),您需要validationSQL Server实例是否具有为其configuration的TCP / IPnetworking库。 您可以使用SQL Serverconfigurationpipe理器进行configuration。 如果必须进行更改,则在重新启动SQL Server之前,它将不会生效。 现在,如果它是一个命名实例,则还需要确保SQL Server Browser服务正在运行。 这提供了TCP端口到客户端试图find一个命名实例。 你需要确保你的防火墙上有两个例外。

关于您的SQL Serverlogin,如果您尝试使用SQL Server Management Studiologin,如果您收到一个错误,指出它不是可信的连接/帐户,那么您将SQL Serverconfiguration为仅使用Windows身份validation,这意味着您可以不使用基于SQL Server的login连接。 在你的情况,你已经表明你已经把它设置为混合模式,这是你想要的。 但是,如果在更改之后没有重新启动SQL Server,则可能是问题所在。 再次,这是另一个只在启动时运行的设置。

您可以忽略的Kerberos错误。 这是因为只有域pipe理员或计算机帐户本身(如果您在Windows 2003上作为Nework服务运行)才能注册SPN。 所以,如果你使用其他的东西,这个错误就会出现。 在这种情况下,最好手动创buildSPN,但不应该在这里input,因为它只显示用于Windows身份validation。 Kerberos对基于SQL Server的login没有影响。

现在就SQL Server用户而言,您能够使用SQL Server Management Studio在本地连接到SQL Server吗?

道歉是为了 – 问题现在解决了:

我重新安装了整个服务器,并添加了sql server作为第一件事 – 我怀疑VisualSVN,通过SSL工作,正在使用sqlserverlogin所需的安全连接破坏。

事实上,问题仍然存在,但再次尝试禁用防火墙,实际上解决了眼前的问题。

我在1433 / TCP的防火墙上打了一个洞,事情就是我想要的东西。

谢谢你的时间,虽然…