schema 设置问题?

goodhy 2010-02-03 11:33:11
如何通过设置,使得在通过在创建表(不是用sql语句)的时候,指定schema,现在默认的schema是dbo,我想换成别的schema,比如:test.

...全文
232 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
goodhy 2010-02-03
  • 打赏
  • 举报
回复
我设置了创建表的用户帐户的默认 schema 为 test,可通过 management studio 的create table的图形界面来创建表的是,仍然是放在dbo下。
xman_78tom 2010-02-03
  • 打赏
  • 举报
回复
需要修改(创建表的)用户帐户的默认 schema
alter user username WITH DEFAULT_SCHEMA=test
--小F-- 2010-02-03
  • 打赏
  • 举报
回复
在数据库testDB中存在架构A及用户A,现将testDB数据库所属的用户由A改为B,同时删除用户A;架构也由A改为B,删除架构A,操作如下: 

1、创建用户B,再创建架构B;

2、将架构A的权限赋给用户B,取消用户A拥有架构A的权限,删除用户A;

3、将数据库的所有属于架构A的对象改为架构B,代码如下:

ALTER SCHEMA [新架构名] TRANSFER 旧架构名.[数据库中的对象表或视图或存储过程]

ALTER SCHEMA [B] TRANSFER A.[对象1]

ALTER SCHEMA [B] TRANSFER A.[对象2]

ALTER SCHEMA [B] TRANSFER A.[对象n]
ws_hgo 2010-02-03
  • 打赏
  • 举报
回复
关注
goodhy 2010-02-03
  • 打赏
  • 举报
回复
good,那这样的话,除非给dbo schema这是权限,否是,任何User都可以访问dbo下的对象,且不用带上dbo.table 这样的写法
xman_78tom 2010-02-03
  • 打赏
  • 举报
回复

当数据库用户对应的登陆帐户属于 SYSADMIN 服务器角色成员,则在数据库中,该用户帐户所创建的数据库对象的所有者为 DBO,架构也为 DBO,会忽略该用户帐户的默认架构。(这个是原来遇到问题时自己总结的)

当用户访问数据库对象时,如果没有显式的指定对象的架构,系统会依次检查:当前数据库的 SYS 架构、用户的默认架构(如果是在一个存储过程中嵌套调用的另一个存储过程时没有显示指定架构,则会检查外层存储过程的架构)、当前数据库的 DBO 架构下是否存在该对象。(这个是从联机丛书上抄的)
--小F-- 2010-02-03
  • 打赏
  • 举报
回复
这个是根据你用户帐户所属角色的权限来的 而不是架构
goodhy 2010-02-03
  • 打赏
  • 举报
回复
强!你说的是重哪里查到的?另外一个问题,现在出现了test.table1,dbo.table2,为什么我在写sql的时候不添加schema仍然可以访问 table2,例如: select * from table2,而不用写成select * from dbo.table2
xman_78tom 2010-02-03
  • 打赏
  • 举报
回复
当数据库用户对应的登陆帐户属于 SYSADMIN 服务器角色成员,则在数据库中,该用户帐户所创建的数据库对象的所有者为 DBO,架构也为 DBO,会忽略该用户帐户的默认架构。

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧