无法创建表,提示:指定的架构名称 "dbo" 不存在,或者您没有使用该名称的权限。

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

6 个解决方案

#1


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

#2


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

#3


USE master
GO

--–创建一个登录
Create LOGIN U1 WITH PASSWORD = 'xx'
GO

USE 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

#1


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

#2


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

#3


USE master
GO

--–创建一个登录
Create LOGIN U1 WITH PASSWORD = 'xx'
GO

USE 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