很多次创建数据库访问用户的时候,我都觉得很疑惑。理不清楚——登录名、 用户名、架构、角色之间的关系。今天在这里要发个小誓,扫清这个障碍。
登陆名和用户之间的关系
- 登录名是连接到数据库引擎某个实例下面的安全主体。登录名能访问一个实例,但是并不代表能访问某个数据库。登录名是指服务器登陆名。
- 用户拥有数据库内的权限。用户是指数据库内的用户。
服务器角色和数据库角色
- 服务器角色(固定服务器角色)
bulkadmin->sysadmin是由最低级到最高级别的角色描述,他们都是数据库实例的管理权限。
唯有public:拥有查看数据库权限,但不能对其做修改,是一个十分纯洁的查看权限。
ps:MS的Docs称也有用户定义的服务器角色。但这个我没体会过。
- 数据库角色
(1) 应用程序角色:没接触过,暂时无法理解。
(2) 有一套标准的角色,称为固定的数据库角色;也可以由用户新建角色,称为用户定义的数据库角色。![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/ed970db656f804813a39c9498a4ac5ea.png)
映射
用户名与登陆名是相互依存的:用户名通过登录名登陆之后才能实现对数据库的访问,所以用户名需要映射到登录名。
从这一角度来讲(结合了操作),是先有登录名,用户名才有了映射的对象 ———— 登录名与用户名是一对多的关系,从而实现一个登录名对不同的数据库有不同的访问权限。
<