sql server 2005 T-SQL ALTER SCHEMA (Transact-SQL)
2007-12-21 09:59
489 查看
在架构之间传输安全对象。
Transact-SQL 语法约定
语法
参数
schema_name
当前数据库中的架构名称,安全对象将移入其中。其数据类型不能为 SYS 或 INFORMATION_SCHEMA。
securable_name
要移入架构中的架构包含安全对象的一部分或两部分名称。
备注
在 SQL Server 2005 中,用户与架构完全分离。有关详细信息,请参阅用户架构分离。
ALTER SCHEMA 仅可用于在同一数据库中的架构之间移动安全对象。若要更改或删除架构中的安全对象,请使用特定于该安全对象的 ALTER 或 DROP 语句。
如果对 securable_name 使用了由一部分组成的名称,则将使用当前生效的名称解析规则查找该安全对象。
将安全对象移入新架构时,将删除与该安全对象关联的全部权限。如果已显式设置安全对象的所有者,则该所有者保持不变。如果安全对象的所有者已设置为 SCHEMA OWNER,则该所有者将保持为 SCHEMA OWNER;但移动之后,SCHEMA OWNER 将解析为新架构的所有者。新所有者的 principal_id 将为 NULL。
权限
若要从另一个架构中传输安全对象,当前用户必须拥有对该安全对象(非架构)的 CONTROL 权限,并拥有对目标架构的 ALTER 权限。
如果已为安全对象指定 EXECUTE AS OWNER,且所有者已设置为 SCHEMA OWNER,则用户还必须拥有对目标架构所有者的 IMPERSONATION 权限。
在移动安全对象后,将删除与所传输的安全对象相关联的所有权限。
示例
以下示例通过将表 Address 从架构 Person 传输到 HumanResources 架构来修改该架构。
复制代码
Transact-SQL 语法约定
语法
ALTER SCHEMA schema_name TRANSFER securable_name
参数
schema_name
当前数据库中的架构名称,安全对象将移入其中。其数据类型不能为 SYS 或 INFORMATION_SCHEMA。
securable_name
要移入架构中的架构包含安全对象的一部分或两部分名称。
备注
在 SQL Server 2005 中,用户与架构完全分离。有关详细信息,请参阅用户架构分离。
ALTER SCHEMA 仅可用于在同一数据库中的架构之间移动安全对象。若要更改或删除架构中的安全对象,请使用特定于该安全对象的 ALTER 或 DROP 语句。
如果对 securable_name 使用了由一部分组成的名称,则将使用当前生效的名称解析规则查找该安全对象。
将安全对象移入新架构时,将删除与该安全对象关联的全部权限。如果已显式设置安全对象的所有者,则该所有者保持不变。如果安全对象的所有者已设置为 SCHEMA OWNER,则该所有者将保持为 SCHEMA OWNER;但移动之后,SCHEMA OWNER 将解析为新架构的所有者。新所有者的 principal_id 将为 NULL。
注意: |
---|
在 SQL Server 2005 中,架构的行为与早期版本的 SQL Server 中的行为不同。假设架构与数据库用户等价的代码不能返回正确的结果。在曾经使用过以下任何 DDL 语句的数据库中,不应当使用旧目录视图(包括 sysobjects):CREATE SCHEMA、ALTER SCHEMA、DROP SCHEMA、CREATE USER、ALTER USER、DROP USER、CREATE ROLE、ALTER ROLE、DROP ROLE、CREATE APPROLE、ALTER APPROLE、DROP APPROLE、ALTER AUTHORIZATION。在曾经使用过这些语句中的任意一个语句的数据库中,必须使用新的目录视图。新的目录视图将采用在 SQL Server 2005 中引入的使主体和架构分离的方法。有关目录视图的详细信息,请参阅目录视图 (Transact-SQL)。 |
若要从另一个架构中传输安全对象,当前用户必须拥有对该安全对象(非架构)的 CONTROL 权限,并拥有对目标架构的 ALTER 权限。
如果已为安全对象指定 EXECUTE AS OWNER,且所有者已设置为 SCHEMA OWNER,则用户还必须拥有对目标架构所有者的 IMPERSONATION 权限。
在移动安全对象后,将删除与所传输的安全对象相关联的所有权限。
示例
以下示例通过将表 Address 从架构 Person 传输到 HumanResources 架构来修改该架构。
复制代码
USE AdventureWorks; GO ALTER SCHEMA HumanResources TRANSFER Person.Address; GO
相关文章推荐
- SQL Server 2005 Beta 2 Transact-SQL 增强功能 1(转)
- sql server 2005 T-SQL % (通配符 -- 需匹配的字符)(Transact-SQL)
- sql server 2005 T-SQL --(注释)(Transact-SQL)
- sql server 2005 T-SQL @@CURSOR_ROWS (Transact-SQL)
- sql server 2005 T-SQL @@LANGID (Transact-SQL)
- sql server 2005 T-SQL @@PACK_SENT (Transact-SQL)
- sql server 2005 T-SQL @@TEXTSIZE (Transact-SQL)
- sql server 2005 T-SQL ALTER LOGIN (Transact-SQL)
- sql server 2005 T-SQL ALTER ROUTE (Transact-SQL)
- sql server 2005 T-SQL ALTER XML SCHEMA COLLECTION (Transact-SQL)
- sql server 2005 T-SQL CKUP MASTER KEY (Transact-SQL)
- sql server 2005 T-SQL binary 和 varbinary (Transact-SQL)
- sql server 2005 T-SQL @@DBTS (Transact-SQL)
- sql server 2005 T-SQL @@LOCK_TIMEOUT (Transact-SQL)
- sql server 2005 T-SQL @@PACK_RECEIVED (Transact-SQL)
- sql server 2005 T-SQL @@TOTAL_ERRORS (Transact-SQL)
- sql server 2005 T-SQL ALTER FULLTEXT CATALOG (Transact-SQL)
- sql server 2005 T-SQL BEGIN...END (Transact-SQL)
- sql server 2005 T-SQL BULK INSERT (Transact-SQL)
- sql server 2005 beta 2 transact-sql 增强功能