none
SQL2008r2所有权问题? RRS feed

  • 问题

  • SQL2008中。我使用用户名UNIERP登录后。默认数据库显示是WUXI_ERP。。表名的前缀是UNIERP.BAA010T
    但是我使用select * from baa010t 的时候,显示消息 208,级别 16,状态 1,第 1 行
    对象名 'baa010t' 无效。
    如果使用select * from unierp。baa010t就可以的。这个是什么问题
    2010年10月11日 6:39

全部回复

  • 这说明用户名UNIERP在数据库WUXI_ERP中的user的默认的schema不是UNIERP

    当查询时不指定schema时,会按照默认的schema进行查询

    你可以通过下面的语句确认一下

    select name,default_schema_name from sys.database_principals
    where name ='xxx'

     

    然后变更

    ALTER USER userName WITH DEFAULT_SCHEMA = newSchema;


    有dba的职位吗(北京的),请联系我 stswordman#hotmail.com
    2010年10月11日 6:54
    版主
  • 我执行select name,default_schema_name from sys.database_principals
    where name =‘unierp’

    显示

    unierp unierp

    ALTER USER unierp WITH DEFAULT_SCHEMA = unierp;

    还是一样的问题。必须在表名前加上UNIERP

    2010年10月11日 7:22
  • Did you reconnect to sql after changing default schema?
    2010年10月11日 14:12
  • 我重新连接了。还重新启动的电脑。还是一样的问题

    2010年10月12日 3:24
  • 检查一下是不是孤立用户

    EXEC sp_change_users_login 'Report';
    
    
    2010年10月12日 4:32
  • 如果是孤立用户的话, 则使用 sp_change_users_login  的 'Auto_Fix' 功能修复, 具体的参考联机帮助上该 sp 的说明.
    2010年10月12日 4:33
  • 我已使用 sp_change_users_login  的 'Auto_Fix' 功能修复,但是还是一样的。需要再表前加所有者unierp.baa010t才可以查询

    2010年10月14日 7:27
  • Tested on my sql2k8 r2, can't reproduce your problem.
    2010年10月14日 13:44
  • 你的环境是什么?

    https://connect.microsoft.com/SQLServer/Feedback

    提交一个bug吧


    有dba的职位吗(北京的),请联系我 stswordman#hotmail.com
    2010年10月14日 13:52
    版主
  • SQL2008中。我使用用户名UNIERP登录后。默认数据库显示是WUXI_ERP。。表名的前缀是UNIERP.BAA010T
    但是我使用select * from baa010t 的时候,显示消息 208,级别 16,状态 1,第 1 行
    对象名 'baa010t' 无效。
    如果使用select * from unierp。baa010t就可以的。这个是什么问题
    From what you posted, user UNIERP should be owner of unierp schema.
    2010年10月14日 13:59