请教各位大侠,情况是这样的,使用sa账户在数据库test里面为登录名user1创建一个用户U1,给U1赋予了以下权限:
grant create table,insert,update,delete to U1
但是在test数据库中创建一个表时提示:指定的架构名称 "dbo" 不存在,或者您没有使用该名称的权限。
检查:test数据库--安全性--用户--U1--右键属性--默认架构为“dbo”
请各位大侠指点下,为什么,谢了

解决方案 »

  1.   

    test数据库--安全性--用户--U1--右键属性》》数据库角色成员身份呢
      

  2.   

    指定你建立用户的默认构架为系统默认,就可以访问DBO
      

  3.   

    USE master
    GO--–创建一个登录
    Create LOGIN U1 WITH PASSWORD = 'xx'
    GOUSE test
    GO--–创建一个数据库的用户
    Create USER myUser FOR LOGIN U1
    GO--–授予db_owner权限
    exec  sp_addrolemember  'db_owner','myUser'
    GO
      

  4.   

    其实,我也知道,如果授予db_owner权限,就可以在数据库中创建表。但是,我想知道为什么已经赋予数据库创建表的权利,为什么还不能创建表呢,呵呵!
      

  5.   

    因为sa对应是dbo,所以你应该把创建的表名写全,把所有者加上去!
    如create table [test].[u1].[tb]()
      

  6.   

    要能执行建表语句,需要两个权限:
    1. create table权限:
    语句如楼主的:grant create table to db_RoleTest
    2. 所在架构的alter权限:
    语句如:grant alter on schema :: dbo to db_RoleTest