java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 ‘**’ 无效

详细错误请看:http://topic.csdn.net/u/20090806/20/b56236c4-7470-43e9-812b-a8fd4da4142c.html

 

主要是因为某种原因(数据迁移)导致某账户对某数据库没有访问权限了

即:访问数据库的用户有登录权限,但无操作表的权限

按照下面两点解决即可:

1. 在[企业控制台]窗口–[树]子窗口–[安全性]子树–[登录]项里将你使用的登陆用户的默认数据库设为你所使用的数据库。
2. 在[企业控制台]窗口–[树]子窗口–[安全性]子树–[登录]项里新增一个登录用户(在其中选择SQL Server 身份验证、服务器角色和要访问的数据库),以后便可用些新增用户访问你勾选的数据库了。

 

这个情况只发生在java里面,其他语言没有见到过

 

import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class Test{ public static void main(String[] args) { String S[]=new String[23]; String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; String dbURL = "jdbc:microsoft:sqlserver://192.168.3.69:1433; DatabaseName=pubs"; String userName = "lihan"; String userPwd = "lihan"; Connection dbConn; try { Class.forName(driverName); dbConn = DriverManager.getConnection(dbURL, userName, userPwd); Statement stmt = dbConn.createStatement(); ResultSet rs = stmt.executeQuery("select * from AUTHORS"); int j = 0; while (rs.next()) { S[j]=rs.getString("state"); j++; } stmt.close(); dbConn.close(); System.out.println("OK"); } catch (Exception e) { e.printStackTrace(); } } }

你可能感兴趣的:(sql,数据库,jdbc,server,String,Microsoft,sqlserver)