【问题标题】:Java Connect To SqlServer DatabaseJava 连接到 SqlServer 数据库
【发布时间】:2018-11-18 20:39:19
【问题描述】:

我正在尝试使用 Eclipse 连接到 SQL Server 数据库,但它给了我错误:

Cannot open database "AdventureWorks2012" requested by the login. The login failed. 

【问题讨论】:

    标签: java sql-server


    【解决方案1】:

    由于您使用的是integratedSecurity=true,这意味着您的Windows 帐户不允许访问AdventureWorks2012 数据库。您需要授予您登录(或运行 Eclipse)的 Windows 帐户数据库访问权限。您可以按照To configure database access docs 授予您的 Windows 帐户访问权限:

    1. 在运行 SQL Server 的计算机上,启动 SQL Server Management Studio。在“注册的服务器”窗格中,双击 SQL Server。

    2. 在对象资源管理器窗格中,展开 SQL Server,展开 Security 文件夹,右键单击 Logins,然后单击 New Login。

    3. 在“登录 - 新建”对话框中,指定 Windows 身份验证或 SQL Server 身份验证模式。

    4. 如果您使用的是 Windows 身份验证,请输入登录名并选择授予访问权限或拒绝访问选项。

    5. 如果您使用 SQL Server 身份验证,请键入登录名和密码,然后确认密码。

    6. 在左侧窗格中,单击数据库访问。

    7. 在右侧窗格中,为您授予访问权限的数据库选中“允许”复选框,然后单击“确定”。

    如果您想通过指定用户名和密码进行连接,请使用 integratedSecurity=false 并提供用户名和密码,如 Establishing a Connection 文档中所示:

    String jdbcUrl = "jdbc:sqlserver:...";
    Properties props = new Properties();
    props.put("user", <database username>);
    props.put("password", <database password>);
    try (Connection conn = DriverManager.getConnection(jdbcUrl, props)) {
      ...
    }
    

    【讨论】:

    • 我使用 windows 帐户连接到 sql server 数据库,这就是我使用 IntegratedSecurity=true 的原因,因为我认为我的 windows 帐户已经拥有访问 sql server 中任何数据库的所有权限! ,你能告诉我如何在 sql server 数据库中授予对我的 windows 帐户的访问权限!
    • @Wahib 更新答案,但实际步骤会因 SQL Server 版本设置而异。
    • 我正在使用 sql server 2017
    • 我在 SSMS 中授予对 windows 帐户的所有访问权限,但我仍然遇到相同的错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多