Topic: 跪求高手指点MS SQL的连接问题

  Print this page

1.跪求高手指点MS SQL的连接问题 Copy to clipboard
Posted by: comma
Posted on: 2005-09-17 12:39

我在启动weblogic的时候当weblogic启动时读到config.xml的连接池测试时提示:
<2005-9-17 上午11时05分58秒 CST> <Error> <JDBC> <BEA-001112> <Test "SELECT COUNT(*) FROM sysobjects" set up for pool "DS_Pools" failed with exception: "java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]拒绝了对对象 'sysobjects'(数据库 'commachen',所有者 'dbo')的 SELECT 权限。".>
<2005-9-17 上午11时05分58秒 CST> <Error> <JDBC> <BEA-001112> <Test "SELECT COUNT(*) FROM sysobjects" set up for pool "DS_Pools" failed with exception: "java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]拒绝了对对象 'sysobjects'(数据库 'commachen',所有者 'dbo')的 SELECT 权限。".>
<2005-9-17 上午11时05分58秒 CST> <Error> <JDBC> <BEA-001111> <Unable to verify the test "SELECT COUNT(*) FROM sysobjects" set up for pool "DS_Pools". Connections will not be tested.>
<2005-9-17 上午11时06分06秒 CST> <Notice> <WebLogicServer> <BEA-000331> <Started WebLogic Admin Server "myserver" for domain "mydomain" running in Development Mode>
其中:数据库连接池和数据源配置都测试成功,数据库 'commachen'为我自建数据库.我也为这个数据库新建了用户,并为这个用户分配了权限.
启动完后,系统运行到查询数据库的时候又提示:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 'GG_CZYB' 无效。
at com.microsoft.jdbc.base.BaseExceptions.createException(Ljava.lang.String;Ljava.lang.String;I)Ljava.sql.SQLException;(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Ljava.sql.SQLException;II[Ljava.lang.String;Ljava.lang.String;I)Ljava.sql.SQLException;(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken()V(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(BLcom.microsoft.jdbc.base.BaseWarnings;)Z(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRPCRequest.processReplyToken(BLcom.microsoft.jdbc.base.BaseWarnings;)Z(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Lcom.microsoft.jdbc.base.BaseWarnings;)V(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSCursorRequest.openCursor(Lcom.microsoft.jdbc.base.BaseWarnings;)V(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.execute()V(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonExecute()V(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeQueryInternal()Ljava.sql.ResultSet;(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeQuery(Ljava.lang.String;)Ljava.sql.ResultSet;(Unknown Source)
at weblogic.jdbc.wrapper.Statement.executeQuery(Ljava.lang.String;)Ljava.sql.ResultSet;(Statement.java:345)
at com.zzxy.model.dao.SingleTableDAO.exeSelectExact(Ljava.lang.StringBuffer;)Ljava.util.List;(SingleTableDAO.java:529)
at com.zzxy.model.dao.SingleTableDAO.selectExact(Ljava.lang.StringBuffer;)Ljava.util.List;(SingleTableDAO.java:469)
at com.zzxy.model.entity.Public_EntityBean.queryExact(Ljava.lang.Object;Ljava.lang.StringBuffer;)Ljava.util.List;(Public_EntityBean.java:134)
at com.zzxy.model.Public_FacadeBean.queryExact(Ljava.lang.Object;Ljava.lang.StringBuffer;)Ljava.util.List;(Public_FacadeBean.java:260)
at com.zzxy.model.Public_Facade_ur04kw_EOImpl.queryExact(Ljava.lang.Object;Ljava.lang.StringBuffer;)Ljava.util.List;(Public_Facade_ur04kw_EOImpl.java:929)
at com.zzxy.model.Public_Facade_ur04kw_EOImpl_WLSkel.invoke(I[Ljava.lang.Object;Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
at weblogic.rmi.internal.ServerRequest.sendReceive()Lweblogic.rmi.spi.InboundResponse;(ServerRequest.java:166)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(Lweblogic.rmi.extensions.server.RemoteReference;Lweblogic.rmi.extensions.server.RuntimeMethodDescriptor;[Ljava.lang.Object;Ljava.lang.reflect.Method;)Ljava.lang.Object;(ReplicaAwareRemoteRef.java:284)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(Ljava.rmi.Remote;Lweblogic.rmi.extensions.server.RuntimeMethodDescriptor;[Ljava.lang.Object;Ljava.lang.reflect.Method;)Ljava.lang.Object;(ReplicaAwareRemoteRef.java:244)
at com.zzxy.model.Public_Facade_ur04kw_EOImpl_813_WLStub.queryExact(Ljava.lang.Object;Ljava.lang.StringBuffer;)Ljava.util.List;(Unknown Source)
at com.zzxy.model.Public_Helper.queryExact(Ljava.lang.Object;Ljava.lang.StringBuffer;)Ljava.util.List;(Public_Helper.java:171)
at com.zzxy.model.wh.czqx.WH_CZQX_LOGIN_Agent.getLoginInfor(Ljavax.servlet.http.HttpServletRequest;)V(WH_CZQX_LOGIN_Agent.java:365)
at com.zzxy.model.wh.czqx.WH_CZQX_LOGIN_Agent.execute(Ljava.lang.String;Ljava.lang.String;Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(WH_CZQX_LOGIN_Agent.java:56)
at com.zzxy.model.BusinessAgent.service(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(BusinessAgent.java:89)
at javax.servlet.http.HttpServlet.service(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;)V(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run()Ljava.lang.Object;(ServletStubImpl.java:996)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;Lweblogic.servlet.internal.FilterChainImpl;)V(ServletStubImpl.java:419)
at weblogic.servlet.internal.TailFilter.doFilter(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;Ljavax.servlet.FilterChain;)V(TailFilter.java:28)
at weblogic.servlet.internal.FilterChainImpl.doFilter(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;)V(FilterChainImpl.java:27)
at com.zzxy.control.SetCharacterEncodingFilter.doFilter(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;Ljavax.servlet.FilterChain;)V(SetCharacterEncodingFilter.java:53)
; nested exception is:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 'GG_CZYB' 无效。

2.Re:跪求高手指点MS SQL的连接问题 [Re: comma] Copy to clipboard
Posted by: why
Posted on: 2005-09-17 19:43

Weblogic version?
M$ SQL Sever version?
(include SP)

Show us the Connection Pool configuration

Maybe you could add to the connection URL:
SelectMethod=cursor
(I don't have any idea what's going on with your system without your input, this's just a "cure" to many of the problems)

If possible, don't use M$ SQL Server JDBC.

3.Re:跪求高手指点MS SQL的连接问题 [Re: comma] Copy to clipboard
Posted by: comma
Posted on: 2005-09-17 20:04

問題兒童 老师,谢谢你的关注,从你的积分和发贴数可知你是老前辈了
下面我把我的问题再说详细一些,我的操作系统xp sp2的,sqlserver2000(打过sp3的补丁),weblogic8.13的.我是把公司的框架移植到家里想自己工作之余在家测试用,公司用的是oracle,家里的电脑配置有些低,装oracle跑的很费劲,我就移植到了sqlserver2000,也就出现了上述这样的问题,
另:Maybe you could add to the connection URL:
SelectMethod=cursor
这句话我不太懂,是不是说要使用游标什么的啊.我没有接触过这个东西.

4.Re:跪求高手指点MS SQL的连接问题 [Re: comma] Copy to clipboard
Posted by: comma
Posted on: 2005-09-17 23:54

另:我的连接池Properties是:
user=zzxy
url=jdbc:microsoft:sqlserver://localhost:1433
selectMethod=cursor
dataSourceName=SQL2000JDBC
userName=zzxy
databaseName=commachen
serverName=localhost

5.Re:跪求高手指点MS SQL的连接问题 [Re: comma] Copy to clipboard
Posted by: why
Posted on: 2005-09-18 01:56

url=jdbc:microsoft:sqlserver://localhost:1433;SelectMethod=cursor;

I don't know whether the line
selectMethod=cursor
on the Properties file has the same effect.

>拒绝了对对象 'sysobjects'(数据库 'commachen',所有者 'dbo')的 SELECT 权限。"
Have you granted enough privilege to access sysobjects?

What is 'GG_CZYB'?

6.Re:跪求高手指点MS SQL的连接问题 [Re: why] Copy to clipboard
Posted by: comma
Posted on: 2005-09-18 10:30

'GG_CZYB'是我在新建的数据库commachen中建的一个表,怎么样给dbo他足够的权限呢,能给的权限我都给过了啊

7.Re:跪求高手指点MS SQL的连接问题 [Re: comma] Copy to clipboard
Posted by: why
Posted on: 2005-09-18 10:38

comma wrote:
'GG_CZYB'是我在新建的数据库commachen中建的一个表,怎么样给dbo他足够的权限呢,能给的权限我都给过了啊

not granting to dbo, but zzxy, i.e. the one being used to connect.
maybe making zzxy a db_owner for now
anyway, this is not likely to be the cause of your problem...

> 数据库连接池和数据源配置都测试成功
How did you test?

> 家里的电脑配置有些低,装oracle跑的很费劲,我就移植到了sqlserver2000
you could use MySQL, PostgreSQL, etc.

8.Re:跪求高手指点MS SQL的连接问题 [Re: why] Copy to clipboard
Posted by: comma
Posted on: 2005-09-18 12:04

那些也没有用过,就用过oracle,呵呵,还是在公司培训的,
> 数据库连接池和数据源配置都测试成功
How did you test?
我是在weblogic 的控制台配置完成后test的,显示的成功的,
not granting to dbo, but zzxy, i.e. the one being used to connect.
maybe making zzxy a db_owner for now
anyway, this is not likely to be the cause of your problem...

>我怎么感觉是数据库的权限的问题呢?

9.Re:跪求高手指点MS SQL的连接问题 [Re: comma] Copy to clipboard
Posted by: comma
Posted on: 2005-09-18 12:08

問題兒童老师!!!最新的后台信息是:
***************************************************
<2005-9-18 上午10时58分38秒 CST> <Info> <WebLogicServer> <BEA-000377> <Starting WebLogic Server with BEA WebLogic JRockit(TM) 1.4.2_04 JVM Version ari-31788-20040616-1132-win-ia32 from BEA Systems, Inc.>
<2005-9-18 上午10时58分39秒 CST> <Info> <Configuration Management> <BEA-150016> <This server is being started as the administration server.>
<2005-9-18 上午10时58分39秒 CST> <Info> <Management> <BEA-141107> <Version: WebLogic Server 8.1 SP3 Tue Jun 29 23:11:19 PDT 2004 404973
WebLogic XMLX Module 8.1 SP3 Tue Jun 29 23:11:19 PDT 2004 404973 >
<2005-9-18 上午10时58分39秒 CST> <Notice> <Management> <BEA-140005> <Loading domain configuration from configuration repository at e:\bea\user_projects\domains\mydomain\.\config.xml.>
<2005-9-18 上午10时58分44秒 CST> <Notice> <Log Management> <BEA-170019> <The server log file E:\bea\user_projects\domains\mydomain\myserver\myserver.log is opened. All server side log events will be written to this file.>
<2005-9-18 上午10时58分48秒 CST> <Notice> <Security> <BEA-090082> <Security initializing using security realm myrealm.>
<2005-9-18 上午10时58分49秒 CST> <Notice> <WebLogicServer> <BEA-000327> <Starting WebLogic Admin Server "myserver" for domain "mydomain">
<2005-9-18 上午10时59分12秒 CST> <Error> <JDBC> <BEA-001112> <Test "SELECT COUNT(*) FROM sysobjects" set up for pool "DS_Pools" failed with exception: "java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]拒绝了对对象 'sysobjects'(数据库 '
<2005-9-18 上午10时59分13秒 CST> <Error> <JDBC> <BEA-001112> <Test "SELECT COUNT(*) FROM sysobjects" set up for pool "DS_Pools" failed with exception: "java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]拒绝了对对象 'sysobjects'(数据库 '
<2005-9-18 上午10时59分13秒 CST> <Error> <JDBC> <BEA-001111> <Unable to verify the test "SELECT COUNT(*) FROM sysobjects" set up for pool "DS_Pools". Connections will not be tested.>
<2005-9-18 上午10时59分27秒 CST> <Notice> <WebLogicServer> <BEA-000331> <Started WebLogic Admin Server "myserver" for domain "mydomain" running in Development Mode>
<2005-9-18 上午10时59分27秒 CST> <Notice> <WebLogicServer> <BEA-000360> <Server started in RUNNING mode>
<2005-9-18 上午10时59分27秒 CST> <Notice> <WebLogicServer> <BEA-000355> <Thread "ListenThread.Default" listening on port 7001, ip address *.*>
-----------------[#document: null]
WebRoot:
Config.xml: CTIAPP_dbdriver: null
Config.xml: CTIAPP_url: jdbc:microsoft:sqlserver://localhost:1433
Config.xml: CTIAPP_User: zzxy
Config.xml: CTIAPP_Password: 99999999
Config.xml: CTIAPP_Maxlimit: 20
Config.xml: CTIAPP_Minlimit: 15
DBconnecter初始化1!jdbc:microsoft:sqlserver://localhost:1433
DBconnecter初始化2!==={CTIAPP_url=jdbc:microsoft:sqlserver://localhost:1433, CTIAPP_dbdriver=null, CTIAPP_Minlimit=15, CTIAPP_Maxlimit=20, CTIAPP_User=zzxy, CTIAPP_Password=99999999}
Config.xml: CTIAPP_IP: http://localhost:7001/docroot/misdoc/report/rls
Config.xml: CTIAPP_Port: 21
Config.xml: CTIAPP_User: 1,2,8,0
Config.xml: CTIAPP_Password: report
Config.xml: 4
获得了strRequestID:V0hfQ1pRWF9MT0dJTl9nZXRMb2dpbkluZm9y
获得了DispatchTarget:/WH/WH_CZQX_LOGIN_Agent
获得了strResponseURI:/default.jsp
!!!!!!!!!!= where hostname= 'localhost' order by jdr DESC
selectExact: SELECT GG_CZYB.BMBH,GG_CZYB.ID,GG_CZYB.MC,GG_CZYB.MM,GG_CZYB.DH,GG_CZYB.FJ,GG_CZYB.SJ,GG_CZYB.JTDH,GG_CZYB.XX,GG_CZYB.SR,GG_CZYB.JDR,GG_CZYB.ZXR,GG_CZYB.CZLB,GG_CZYB.DLFS,GG_CZYB.ZXBZ,GG_CZYB.ZTBZ,GG_CZYB.XB,GG_CZYB.ZP,GG_CZYB.GW,GG_CZYB.BZ,GG_CZYB.CS
erroinfo=Unexpected exception in com.zzxy.model.Public_FacadeBean.queryExact():
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]拒绝了对对象 'GG_CZYB'(数据库 'commachen',所有者 'dbo')的 SELECT 权限。
at com.microsoft.jdbc.base.BaseExceptions.createException(Ljava.lang.String;Ljava.lang.String;I)Ljava.sql.SQLException;(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Ljava.sql.SQLException;II[Ljava.lang.String;Ljava.lang.String;I)Ljava.sql.SQLException;(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken()V(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(BLcom.microsoft.jdbc.base.BaseWarnings;)Z(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRPCRequest.processReplyToken(BLcom.microsoft.jdbc.base.BaseWarnings;)Z(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Lcom.microsoft.jdbc.base.BaseWarnings;)V(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSCursorRequest.openCursor(Lcom.microsoft.jdbc.base.BaseWarnings;)V(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.execute()V(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonExecute()V(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeQueryInternal()Ljava.sql.ResultSet;(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeQuery(Ljava.lang.String;)Ljava.sql.ResultSet;(Unknown Source)
at weblogic.jdbc.wrapper.Statement.executeQuery(Ljava.lang.String;)Ljava.sql.ResultSet;(Statement.java:345)
at com.zzxy.model.dao.SingleTableDAO.exeSelectExact(Ljava.lang.StringBuffer;)Ljava.util.List;(SingleTableDAO.java:529)
at com.zzxy.model.dao.SingleTableDAO.selectExact(Ljava.lang.StringBuffer;)Ljava.util.List;(SingleTableDAO.java:469)
at com.zzxy.model.entity.Public_EntityBean.queryExact(Ljava.lang.Object;Ljava.lang.StringBuffer;)Ljava.util.List;(Public_EntityBean.java:134)
at com.zzxy.model.Public_FacadeBean.queryExact(Ljava.lang.Object;Ljava.lang.StringBuffer;)Ljava.util.List;(Public_FacadeBean.java:260)
at com.zzxy.model.Public_Facade_ur04kw_EOImpl.queryExact(Ljava.lang.Object;Ljava.lang.StringBuffer;)Ljava.util.List;(Public_Facade_ur04kw_EOImpl.java:929)
at com.zzxy.model.Public_Facade_ur04kw_EOImpl_WLSkel.invoke(I[Ljava.lang.Object;Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
at weblogic.rmi.internal.ServerRequest.sendReceive()Lweblogic.rmi.spi.InboundResponse;(ServerRequest.java:166)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(Lweblogic.rmi.extensions.server.RemoteReference;Lweblogic.rmi.extensions.server.RuntimeMethodDescriptor;[Ljava.lang.Object;Ljava.lang.reflect.Method;)Ljava.lang.Object;(ReplicaAwareRemoteRef.java:284)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(Ljava.rmi.Remote;Lweblogic.rmi.extensions.server.RuntimeMethodDescriptor;[Ljava.lang.Object;Ljava.lang.reflect.Method;)Ljava.lang.Object;(ReplicaAwareRemoteRef.java:244)
at com.zzxy.model.Public_Facade_ur04kw_EOImpl_813_WLStub.queryExact(Ljava.lang.Object;Ljava.lang.StringBuffer;)Ljava.util.List;(Unknown Source)
at com.zzxy.model.Public_Helper.queryExact(Ljava.lang.Object;Ljava.lang.StringBuffer;)Ljava.util.List;(Public_Helper.java:171)
at com.zzxy.model.wh.czqx.WH_CZQX_LOGIN_Agent.getLoginInfor(Ljavax.servlet.http.HttpServletRequest;)V(WH_CZQX_LOGIN_Agent.java:365)
at com.zzxy.model.wh.czqx.WH_CZQX_LOGIN_Agent.execute(Ljava.lang.String;Ljava.lang.String;Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(WH_CZQX_LOGIN_Agent.java:56)
at com.zzxy.model.BusinessAgent.service(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(BusinessAgent.java:89)
at javax.servlet.http.HttpServlet.service(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;)V(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run()Ljava.lang.Object;(ServletStubImpl.java:996)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;Lweblogic.servlet.internal.FilterChainImpl;)V(ServletStubImpl.java:419)
at weblogic.servlet.internal.TailFilter.doFilter(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;Ljavax.servlet.FilterChain;)V(TailFilter.java:28)
at weblogic.servlet.internal.FilterChainImpl.doFilter(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;)V(FilterChainImpl.java:27)
at com.zzxy.control.SetCharacterEncodingFilter.doFilter(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;Ljavax.servlet.FilterChain;)V(SetCharacterEncodingFilter.java:53)
; nested exception is:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]拒绝了对对象 'GG_CZYB'(数据库 'commachen',所有者 'dbo')的 SELECT 权限。

10.Re:跪求高手指点MS SQL的连接问题 [Re: comma] Copy to clipboard
Posted by: why
Posted on: 2005-09-18 12:38

>我怎么感觉是数据库的权限的问题呢?
Yes, it seems to be so from the log, but you have to reply to my question:
Have you tried making zzxy a "db_owner" of the database "commachen"?

11.Re:跪求高手指点MS SQL的连接问题 [Re: comma] Copy to clipboard
Posted by: comma
Posted on: 2005-09-18 12:51

有,我给了他所有的角色,所有用户能给你角色我都给了,

12.Re:跪求高手指点MS SQL的连接问题 [Re: comma] Copy to clipboard
Posted by: comma
Posted on: 2005-09-18 20:27

儿童问题老师!问题已经解决,还是看的sqlserver的帮助D,问题出在:新建用户后要为他新建一个角色,不能使用系统的定服务器角色,如果使用定服务器角色时新建的表将是DBO的表,而DBO又不能有访问我新建的这个数据库的权限(我怎么都加不进去,不知问何.还望老师们指点).所以这样一来,一按照原来的配置进去访问数据库就会报那样的错误.

13.Re:跪求高手指点MS SQL的连接问题 [Re: comma] Copy to clipboard
Posted by: why
Posted on: 2005-09-18 21:08

comma wrote:
儿童问题老师!问题已经解决,还是看的sqlserver的帮助D,问题出在:新建用户后要为他新建一个角色,不能使用系统的定服务器角色,如果使用定服务器角色时新建的表将是DBO的表,而DBO又不能有访问我新建的这个数据库的权限(我怎么都加不进去,不知问何.还望老师们指点).所以这样一来,一按照原来的配置进去访问数据库就会报那样的错误.

I don't have M$ SQL Server here.
But I believe in the Enterprise Manager, you could open the database, select and right-click the user (in this case, dbo?) to open a page for permissions.

Anyway, dbo should have db_owner role and therefore, have all necessary permissions unless they are revoked.

Could you please tell us the url of sqlserver的帮助 you read?

14.Re:跪求高手指点MS SQL的连接问题 [Re: comma] Copy to clipboard
Posted by: comma
Posted on: 2005-09-19 20:08

好的,
数据库所有者 (dbo)
dbo 是具有在数据库中执行所有活动的暗示性权限的用户。将固定服务器角色 sysadmin 的任何成员都映射到每个数据库内称为 dbo 的一个特殊用户上。另外,由固定服务器角色 sysadmin 的任何成员创建的任何对象都自动属于 dbo。

例如,如果用户 Andrew 是固定服务器角色 sysadmin 的成员,并创建表 T1,则表 T1 属于 dbo,并以 dbo.T1 而不是 Andrew.T1 进行限定。相反,如果 Andrew 不是固定服务器角色 sysadmin 的成员,而只是固定数据库角色 db_owner 的成员,并创建表 T1,则 T1 属于 Andrew,并限定为 Andrew.T1。该表属于 Andrew,因为该成员没有将表限定为 dbo.T1。

无法删除 dbo 用户,且此用户始终出现在每个数据库中。

只有由 sysadmin 固定服务器角色成员(或 dbo 用户)创建的对象才属于 dbo。由任何其他也不是 syadmin 固定服务器角色成员的用户(包括 db_owner 固定数据库角色成员)创建的对象:

属于创建该对象的用户,而不是 dbo。

用创建该对象的用户名限定。

15.MS SQL的连接问题 [Re: comma] Copy to clipboard
Posted by: cxy123884
Posted on: 2005-09-22 15:00

我的程序如下:
import java.sql.*;

public class DemoJDBC{
  public static void main(String[] args){
    String driver="sun.jdbc.odbc.JdbcOdbcDriver";
    String source="jdbc:odbc:phonebook";
    try{
      Class.forName(driver);
    }catch(ClassNotFoundException exc){
      System.out.println("没有发现驱动程序:"+driver);
      exc.printStackTrace();
      System.exit(1);
    }
    try{
      Connection connection=DriverManager.getConnection(source,"sa","q0l015");
      SQLWarning warn=connection.getWarnings();
      while(warn!=null){
        System.out.println(warn.getMessage());
        warn=warn.getNextWarning();
      }
      String sql="SELECT * FROM person WHERE id=? AND birthday<=?";
      PreparedStatement pStm=connection.prepareStatement(sql);
      pStm.setString(1,new String("leeman"));
      pStm.setDate(2,new Date(1970,2,2));
      ResultSet result=pStm.executeQuery();
      while(result.next()){
        String id=result.getString("id");
        String name=result.getString("name");
        String sex=result.getBoolean("sex")?"女":"男";
        Date birthday=result.getDate("birthday");
        System.out.println(id+"\t"+name+"\t"+sex+"\t"+birthday);
      }
      result.close();
      pStm.close();
      Statement stm=connection.createStatement();
      sql="SELECT * FROM person";
      result=stm.executeQuery(sql);
      while(result.next()){
        String id=result.getString("id");
        String name=result.getString("name");
        String sex=result.getBoolean("sex")?"女":"男";
        Date birthday=result.getDate("birthday");
        System.out.println(id+"\t"+name+"\t"+sex+"\t"+birthday);
      }
      result.close();
      stm.close();
      connection.close();      
    }catch(SQLException exc){
      System.out.println("在执行数据库访问时发生错误");
      exc.printStackTrace();
    }
        
  }
}

但是在运行的时候出现问题:
java.sql.SQLException:[microsofr][ODBC SQL server Driver]没有执行可选特征
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
at sun.jdbc.odbc.JdbcOdbc.standerError(JdbcOdbc.java:7115)
at sun.jdbc.odbc.JdbcOdbc.SQLBindparamenterdate(JdbcOdbc.java:809)
at sun.jdbc.odbc.JdbcOdbcPreparedstatement.setDate(JdbcOdbcpreparedstatement.java:824)
at DemoJDBC.main(DemoJDBC.java:32)
我不知道是什么意思啊?求高手指点谢谢!!!
我的数据库的表如下:
id   char   1
name   char   1
birthday   datetime  8  
sex   char   4
address   nvarchar  50  
resume   ntext 16

16.Re:跪求高手指点MS SQL的连接问题 [Re: comma] Copy to clipboard
Posted by: why
Posted on: 2005-09-22 23:30

> sun.jdbc.odbc.JdbcOdbcPreparedstatement.setDate
It seems that the ODBC SQL server Driver failed to perform setDate().
Don't use ODBC bridge sun.jdbc.odbc.JdbcOdbcDriver, try jTDS JDBC driver.

I just did a search with Google, and found a few pages saying something like "apparently using the JDBC-ODBC Bridge with SQL Server does not support the setDate method"
http://forum.java.sun.com/thread.jspa?threadID=491212&messageID=2310230

You may try to find some solid documentation of this error.
I won't... who cares about the ODBC bridge for SQL Server after all Smile

17.JAVA与mssql的数据转换问题 [Re: comma] Copy to clipboard
Posted by: cxy123884
Posted on: 2005-09-23 15:32

有谁知道在sql中的datetime类型的数据转换成java中的数据怎么转换啊?????谢谢啊


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923