020_登录名_用户_角色_架构

020_登录名_用户_角色_架构

 

 

 

 

--【登录名】****************************************************************************

 

通过mssm新建登录名时(假设为test_login),可以设置【常规】,【服务器角色】,【用户映射】,【安全对象】等想干属性。

 

【常规】

         其中有一项为“默认数据库”,但是只是在这里选择了某个数据库(如果为master或者msdb),而不在【用户映射】中映射master或者msdb数据库,并不会在TEST数据库中创建test_login用户。

         在不映射数据库的情况下,默认数据库设为master或者msdb之外的数据库,那么使用这个登录名登录数据库时,会报错。

 

【服务器角色】

         服务器角色的选择默认为public,且不能取消public服务器角色,同时可以多选其他的服务器角色。

         选取服务器角色,表示这个登录名具有服务器级别的相关操作权限。

        

【用户映射】

         可以在【用户映射】选项卡中选择相关数据库,同时给不同的数据库附加数据库角色,会给数据库附加默认的public数据库角色,且不能删除,同时可以附加其他的数据库角色。也就是给不同的数据库附加相应的数据库级别的权限。

         被附加的数据库的用户中,会添加与登录名同名的用户。

        

【安全对象】

        

 

--【服务器角色】****************************************************************************

         服务器角色共有9个,不能增加,不能删除。

         每个 SQL Server 登录名都属于 public 服务器角色。如果未向某个服务器主体授予或拒绝对某个安全对象的特定权限,该用户将继承授予该对象的 public 角色的权限。

         public 角色拥有 VIEW ANY DATABASE 权限。

         securityadmin 固定服务器角色的成员可以授予服务器级权限和数据库级权限。

        

--【用户】****************************************************************************

 

数据库用户对应于服务器登录名以便登录者可以操作数据库

数据库角色可以添加,可以定制不同权限  

数据库架构,类似于数据库对象的命名空间,用户通过架构访问数据库对象

登录名与用户在服务器级是一对多的,而在数据库里是一对一的。比如说Server这个服务器有4个数据库,DB1,DB2,DB3,DB4,每个数据库都有一个用户USER1,USER2,USER3,USER,在创建一个登录名my的时候可以通过用户映射的操作,为这个登录名在每一个具体的数据库中指定用户,比如可以如下指定my在DB1中的用户是USER1,它是在使用数据库的时候是唯一的,my在不能再DB1中切换用户,除非重新指定它对DB1数据库的用户映射。

 

用户一般是受权限管理的,在新建一个用户的时候是这样的:

 

需要指定它的登录名,这也是映射操作的一部分,同时可以指定它的默认架构,如不指定就是dbo,也可以指定它拥有的其它架构和角色成员,不过没有默认数据库角色。

 

下面看看新建一个角色:

在新建的时候可以指定这个角色拥有那些架构,但是这些结构必须是这个数据库里面的,默认架构为当前用户使用的架构,比如当前用户的架构是dbo,则在角上权限定义时所使用的默认架构就是dbo,当然也可以指定其它的架构。

 

 

--【角色】****************************************************************************

 

SQL Server 中有两种类型的数据库级角色:数据库中预定义的“固定数据库角色”和您可以创建的“灵活数据库角色”。

 

固定数据库角色是在数据库级别定义的,并且存在于每个数据库中。db_owner 和 db_securityadmin 数据库角色的成员可以管理固定数据库角色成员身份。但是,只有 db_owner 数据库角色的成员能够向 db_owner 固定数据库角色中添加成员。msdb 数据库中还有一些特殊用途的固定数据库角色。

 

您可以向数据库级角色中添加任何数据库帐户和其他 SQL Server 角色。固定数据库角色的每个成员都可向同一个角色添加其他登录名。

 

注:

每个数据库用户都属于 public 数据库角色。如果未向某个用户授予或拒绝对安全对象的特定权限时,该用户将继承授予该对象的 public 角色的权限。

 

 

 

 

 

--【架构】****************************************************************************

--创建架构,什么都不涉及

CREATE SCHEMA test_schema

 

--创建架构,创建隶属于test_server用户的test_schema架构

CREATE SCHEMA test_schema AUTHORIZATION test_server;

 

--将aaa表隶属的架构由dbo改为test_schema

ALTER SCHEMA test_schema TRANSFER dbo.aaa;

 

posted @ 2015-02-10 22:14  黑白叹  阅读(197)  评论(0编辑  收藏  举报