我连接一数据库,能连上.
然后操作数据库的表,数据库是SQL server 2000
操作系统自带的表没有问题,但是如果操作用户建的表,问题就出现了
比如操作系统的表A,直接"select * from A"就可以了
但是要是B,不是系统的,是用户建的,"select * from B "就会报 "对象名"A"无效"的错误
但是倘若改成"select * from test.dbo.B"就没有问题 (假设数据库是test)
在查询分析器里面直接"select * from B "就可以.
我看了权限,应该有权限啊,很不明白.请高人赐教,本人很菜.
谢谢

解决方案 »

  1.   

    会不会你连的库是在Master库?所有系统表有,但是自建表没有。
      

  2.   

    之前建过用户,给了权限,还是不能操作,就是得test.dbo.BMaster库啥意思?可否详解?怎么改?谢谢.很菜,^_^
      

  3.   

    看你连库字符串中是哪个库
    看你在查询分析其中使用的是哪个库你应该是把表建在Master中了
    查询分析器默认的库是master
      

  4.   

    我是在企业管理器里面建的表,建在test里,所以这个错不了
    连接字符串用的是test
      

  5.   

    另外建一个用户,user/user,其权限只访问当前数据库。
      

  6.   

    server=HAN;userid=sa;password=sa;database=test;Trusted_Connection=yes
      

  7.   

    突然觉得,好像不应该是trusted_connection,汗...
    对么?
      

  8.   

    在写Sql语句的时候最好在表名前加上模式名,你这个问题应该就是这个原因;
    例如你使用Sa用户进去建的表,应该模式名缺省为dbo;当你应用该表名时,应该使用
    dbo.tableName,当然你可以直接在Sql语句中使用TableName也是可以的,
    但是当你使用别的用户登入时,你建的表的模式名应该就不是dbo,具体你可以在Sql Server中查一下,此时你要再引用前面Sa建的表的话,就必须使用表的全名(模式名.表名)来进行应用,这个问题你如果到SqlServer板块中去问应该有更详细的答复。