AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 62969
Accepted
Anders Juul
Anders Juul
Asked: 2009-09-08 00:08:06 +0800 CST2009-09-08 00:08:06 +0800 CST 2009-09-08 00:08:06 +0800 CST

如何允许 sql server 用户访问?

  • 772

我是一名开发人员尝试播放管理员,并希望使用 sql server 用户(“op_web”)从我的开发机器连接到远程 sql server。

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

该服务器是我制作的相对较新的安装。

我有

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

  • 在服务器级别创建了登录 op_web

  • 在数据库级别创建了一个用户并分配给同名登录

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

如果我使用 sqlserver management studio/sqlserver 身份验证和创建的登录名登录(在服务器本地),我可以按预期显示和更改表数据。

远程访问让我无法选择数据库。

在客户端机器上的 Visual Studio 中,我得到了下拉列表中列出的服务器名称以及发现的 sql server - 如前所述,我可以使用 windows 用户(管理员帐户)进行连接。此外,我尝试过另一台具有相同负面结果的物理机器。它闻起来不像是防火墙问题,但我试图禁用服务器防火墙以防万一,但这也没有解决它。我有另一个数据库服务器,一切正常,我已经克隆了每个用户到用户的设置(所以听起来问题与 sql server 实例有关,而不是与用户有关)。

任何指向我可能错过的东西?

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

windows-server-2008
  • 3 3 个回答
  • 18111 Views

3 个回答

  • Voted
  1. Best Answer
    Richard
    2009-09-08T02:13:03+08:002009-09-08T02:13:03+08:00

    SQL Server“用户”对他们来说有两个部分。

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

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

    您可以定义服务器和数据库角色以授予特定权限)。

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

    因此,您需要使用管理员帐户为您的 Windows 用户帐户创建一个服务器登录名,并授予它访问您需要使用的数据库的权限。如果您正在定义事物(表、视图、存储过程......),您确实需要“dbo”角色,或者需要相当多的工作来进行更精细的控制。

    请记住仅使用应用程序需要的访问权限来测试应用程序(例如,很少有应用程序会创建/删除/更改视图或表)。


    1在 SQL Server 2005 中,主机的本地管理员组被映射到具有“sysadmin”服务器角色的登录名,在 2008 中,您可以在设置中指定要映射的帐户)。

    • 2
  2. K. Brian Kelley
    2009-09-08T06:35:13+08:002009-09-08T06:35:13+08:00

    为了能够在网络上看到(远程连接),您需要验证 SQL Server 实例是否已为其配置了 TCP/IP 等网络库。您可以使用 SQL Server 配置管理器进行配置。如果您必须进行更改,则在您重新启动 SQL Server 之前它不会生效。现在,如果它是一个命名实例,您还需要确保 SQL Server Browser 服务正在运行。这为客户端提供了 TCP 端口,该客户端试图找到与命名实例相关的 TCP 端口。并且您需要确保防火墙上针对这两种服务都有例外。

    关于您的 SQL Server 登录,如果您尝试使用 SQL Server Management Studio 登录,如果您收到错误提示它不是受信任的连接/帐户,则您的 SQL Server 配置为仅使用 Windows 身份验证,这意味着您可以'不使用基于 SQL Server 的登录名进行连接。在您的情况下,您已经表明您已将其设置为混合模式,这就是您想要的。但是,如果您在进行更改后没有重新启动 SQL Server,则可能是问题所在。同样,这是仅在启动时运行的另一种设置。

    您可以忽略的 Kerberos 错误。这是因为只有域管理员或计算机帐户本身(如果您在 Windows 2003 上作为 Nework 服务运行)可以注册 SPN。因此,如果您使用其他任何东西,就会出现该错误。在这种情况下,最好手动创建 SPN,但不应在此处输入,因为这仅显示用于 Windows 身份验证。Kerberos 对基于 SQL Server 的登录没有影响。

    现在对于 SQL Server 用户,您是否能够使用 SQL Server Management Studio 在本地连接到 SQL Server?

    • 1
  3. Anders Juul
    2009-09-09T02:57:17+08:002009-09-09T02:57:17+08:00

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

    我重新安装了整个服务器并添加了 sql server 作为第一件事 - 我怀疑通过 SSL 工作的 VisualSVN 正在破坏 sqlserver 登录也需要的安全连接。

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

    我在防火墙上为 1433/TCP 打了一个洞,事情就在我想要的地方。

    谢谢你的时间,虽然...

    • 0

相关问题

  • 文件复制到分支机构

  • 对于 ASP.Net 应用程序,Windows 64 位相对于 32 位的主要优势是什么?

  • Windows Server 2008 Hyper-V 虚拟化服务器的最佳 RAID 配置?

  • 远程连接 sql server 不工作,但如果防火墙禁用它呢?

  • 无法从 SQL Server 2008 备份数据库

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve