学习SQLserver2005新特性第三讲:用户和架构分离
在SQLServer2005中,架构独立于创建它们的数据库用户而存在。用户架构分离的好处:(1)多个用户可以通过角色成员身份或Windows
在 SQL Server 2005 中,架构独立于创建它们的数据库用户而存在。用户架构分离的好处:(1)多个用户可以通过角色成员身份或 Windows 组成员身份拥有一个单个架构;(2)极大地简化了删除数据库用户的操作;(3) 多个用户可以共享一个默认架构以进行统一名称解析。
实验步骤如下:
1. 启动SQL Server Management Studio, 新建查询
2.下列T-SQL语句代码,首先在pubs数据库中创建名为john的帐号和用户,并授予他建表的权限。
use pubs
create login john with password=abcd'
create user john for login john
grant create table to john
3.运行代码安全上下文切换到john,然后john尝试创建一个表, -可以看到,结果失败了,
execute as login='john'
go
create table table1(tid int)
错误提示为:“指定的架构名称 "dbo" 不存在,或者您没有使用该名称的权限”。因为john没有在dbo架构中创建对象的权限,john没有指定默认架构,create table语句尝试创建dbo.table1。
4.现在,把代码恢复到管理员用户,他登陆并运行代码创建johnschema,把架构的所属权赋予了john,并为john设置了默认架构为johnschema。
revert
create schema johnschema authorization john
go
alter user john with default_schema=johnschema
go
5. 现在john再来创建表,成功了
execute as login='john'
go
create table johnschema.table1(tid int)
此时,也可不必明确指定了他有权使用的架构,因为john设置了默认的架构
本文作者:宋立桓 来源:http://www.winmag.com.cn/forum/
CIO之家 www.ciozj.com 微信公众号:imciow
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读