sql server 2005 企业版
一数据库FIMP
用户hnxc
有表rbac(hnxc.rbac)以hnxc登录select * from rbac 
提示:对象名'rbac'无效非要select * from hnxc.rbac
才能查出数据
请问如何设置才能在以hnxc登录的情况下,用select * from rbac可以查出数据

解决方案 »

  1.   

    是的.sql server 2005如果不是当前用户登录,需要带上用户名.
      

  2.   

    你这个表不是dbo的,sa登录都要hnxc.rbac访问。
      

  3.   

    不需要吧,是不是数据库访问错了位置,语句写在master里面
      

  4.   

    我登录的是hnxc
    表是hnxc的,显示hnxc.rbac
    select * from rbac查不出数据
      

  5.   

    sqlserver的架构就是这么定的owner.table
    你这个表的owner是hnxc,没办法
    如果你的库里还有一个abc的用户,只要有ddl admins角色也完全可以创建一个叫abc.rbac的表(不会报重复)
    这个时候你select * from rbac 到底算是读取哪一个rbac?如果你说一定是读hnxc的那没办法只能借助存储过程来做了,自己拼接sql语句
      

  6.   


    -- 检查 hnxc 用户帐户的默认架构
    select name,default_schema_name from sys.database_principals where name='hnxc';-- 如果默认架构不是 hnxc,则修改默认架构
    alter user hnxc with default_schema=hnxc;