请问,create schema schema1 和create schema schema1 authorization user1有何区别
我觉得只要用create schema schema1 建一个schema,再建一个对象如table,如schema1.table1,再给user1一些schema1.table1的读\写权限,不就可以吗?authorization user1的用处?

解决方案 »

  1.   


    ---分区表的用法例子,说明楼主看联机帮助..
    Create PARTITION FUNCTION F_PARTITION (datetime)
    AS RANGE RIGHT FOR VALUES
    ('2008-01-01', '2008-04-02', '2008-07-03',
    '2008-10-03', '2009-01-03')go
    Create PARTITION SCHEME S_PARTITION
    as PARTITION F_PARTITION
    ALL to ([PRIMARY])go
    CREATE TABLE dbo.Partition_Table(
    ID int identity(1,1),
    Date datetime not null
    ) ON S_PARTITION (Data) 
    go
    ---插入数据
    insert Partition_Table(Date)
    select '2008-01-01' union all
    select '2008-04-02' union all
    select '2008-07-03' union all
    select '2008-10-03' union all
    select '2009-01-03'------------查看分区表存储:
    select 
    convert(varchar(16), ps.name) as partition_scheme,
    p.partition_number,
    convert(varchar(10), ds2.name) as filegroup,
    convert(varchar(19), isnull(v.value, ‘’), 120) as range_boundary,
    str(p.rows, 9) as rows
    from 
    sys.indexes i
    join 
    sys.partition_schemes ps on i.data_space_id = ps.data_space_id
    join 
    sys.destination_data_spaces dds on ps.data_space_id = dds.partition_scheme_id
    join 
    sys.data_spaces ds2 on dds.data_space_id = ds2.data_space_id
      

  2.   

    看错...
    联机有例子。。
    CREATE SCHEMA
    创建一个架构,并且可以在概念上将其看作是包含表、视图和权限定义的对象。
      

  3.   

    CREATE SCHEMA
    创建一个架构,并且可以在概念上将其看作是包含表、视图和权限定义的对象。语法
    CREATE SCHEMA AUTHORIZATION owner
        [ < schema_element > [ ...n ] ]< schema_element > ::=
        { table_definition | view_definition | grant_statement }参数
    AUTHORIZATION owner指定架构对象所有者的 ID。此标识符必须是数据库中有效的安全帐户。table_definition指定在架构内创建表的 CREATE TABLE 语句。view_definition指定在架构内创建视图的 CREATE VIEW 语句。grant_statement指定授予用户或用户组权限的 GRANT 语句。 注释
    CREATE SCHEMA 提供了在单个语句中创建表、视图以及授予对象权限的方法。如果在创建任何对象或授予任何权限(这些是在 CREATE SCHEMA 语句中指定的)时发生错误,则不会创建任何对象。创建的对象不必按逻辑顺序出现,但引用其它视图的视图除外。例如,GRANT 语句可以在创建某个对象之前授予该对象的权限,CREATE VIEW 语句也可以出现在创建该视图所引用表的 CREATE TABLE 语句之前。同样,CREATE TABLE 语句中声明的外键可以指向后面指定的表。例外情况是,如果一个视图的选择语句引用另一个视图,则必须在指定引用视图之前指定被引用的视图。权限
    CREATE SCHEMA 权限默认授予所有用户,但是他们必须有权创建加入到架构中的对象。示例
    A. 在创建对象之前授权访问对象
    下例显示在创建对象之前授予权限。CREATE SCHEMA AUTHORIZATION ross 
    GRANT SELECT on v1 TO public
    CREATE VIEW v1(c1) AS SELECT c1 from t1
    CREATE TABLE t1(c1 int)B. 创建相互依赖的 FOREIGN KEY 约束
    下例创建相互依赖的 FOREIGN KEY 约束。用其它方法完成由此 CREATE SCHEMA 示例实现的任务时,需要执行多个步骤。CREATE SCHEMA AUTHORIZATION ross
    CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 INT REFERENCES t2(c1))
    CREATE TABLE t2 (c1 INT PRIMARY KEY, c2 INT REFERENCES t1(c1))
      

  4.   

    2005的列子:--Create our users
    create login User1 with password='^*ahfn2@^(K'
    go
    create login User2 with password='*HABa7s7aas'
    go
    create login User3 with password='zxd837&^gqF'
    go
    create database ExampleDB
    go
    use ExampleDB
    go
    --User 3 will own a table
    create user User3 with default_schema=User3
    go
    create schema User3 authorization User3
    go
    --User 2 will have SELECT access and write a proc to access
    create user User2 with default_schema=User2
    go
    create schema User2 authorization User2
    go--User 1 will have the right to exec the proc
    create user User1 with default_schema=User1
    go
    create schema User1 authorization User1
    gogrant create table to User3
    go
    grant create proc to User2
    go
    execute as login='User3'
    go
    create table User3.CustomerInformation
    (CustomerName nvarchar(50))
    go
    insert into CustomerInformation values ('Bryan''s Bowling Alley')
    insert into CustomerInformation values ('Tammie''s Tavern')
    insert into CustomerInformation values ('Frank''s Fresh Produce')
    go
    grant select on CustomerInformation to User2
    go
    revert
    go
    execute as login='User2'
    --create a stored proc that will return the rows in our table
    create proc ViewCustomerNames
    AS
    BEGIN
    select * from User3.CustomerInformation
    END
    go
    grant execute on ViewCustomerNames to User1
    go
    revert
    go