SQL2005 对2000 进行了很大的改进,而用户关系这部分也变得相当复杂了,很多朋友都对此一知半解!下面,我将把我应用中总结的和大家分享下,先从概念入手,希望对不理解的朋友有点提示。 今天我们要说的包括服务器登录名 Server Login,服务器角色 Server Role,数据库用户DB User,数据库架构 DB Schema,数据库角色 DB Role 。以上几个名词应该从服务器与数据库来区分,服务器包含一到多个数据库,其中: 服务器登录名,指有权限登录到某服务器的用户; 服务器角色,指一组固定的服务器用户,默认有9 组; 登录名一定属于某些角色,默认为 public 服务器角色不容许更改 登录后也不一定有权限操作数据库 数据库用户,指有权限能操作数据库的用户; 数据库角色,指一组固定的有某些权限的数据库角色; 数据库架构,指数据库对象的容器; 数据库用户对应于服务器登录名以便登录者可以操作数据库 数据库角色可以添加,可以定制不同权限 数据库架构,类似于数据库对象的命名空间,用户通过架构访问数据库对象 而通过下图可以让这些概念清晰一些: 即: 1. 服务器登录名属于某组服务器角色; 2. 服务器登录名需要于数据库的用户映射后才拥有操作数据库的权限 3. 数据库用户属于某组数据库角色以获取操作数据库的权限 4. 数据库角色拥有对应的数据库架构,数据库用户可以通过角色直接拥有架构 5. 数据库用户有默认架构,写SQL 语句可以直接以“对象名”访问 6. 非默认架构则要以“架构名.对象名”访问 因此,新建一个非SA 账户并建立数据库的过程可以如下: 1、新建登录名Login1 2、新建数据库DB1 3、新建 DB1 的架构 Schema1 4、新建 BD1 的用户 User1,登录名对应 Login1,默认架构选择 Schema1,角色选择 db_ow ner 、在登录名 Login1 的属性窗口里选择“用户映射”,勾选 DB1,在用户里填写 User1,默认架构选择"Schema1" 6、至此,新建表名会是 Schem a1.Table1,其他对象也如此 7、当然还可以新建其他架构的对象 Schema2,只有 User1 拥有该架构,一样可以访问,如Schema2.Table2 值得注意的是,当为登录映射数据库用户的时候,多个数据库可以有相同名称的用户,而单独为某个数据库新建的用户,如 User1,则在其他数据库里不允许同名。 Sql Server 2005 中的架构(Schema)、用户(User)、角色(Role)和登录(Login)(一) 我相信很多人接触这些概...