SQl Server 中登录名 、用户、角色、概念一览

 
 
 
数据库,角色,用户,安全
 
     登录SQL server 2008可以用windows身份验证也可以用sql server身份验证,不论那种,进入数据库后都拥有超级用户的权限,这显然是不太安全的。合理的做法是:对于一个数据库,应该是由不同权限的用户进行操作和管理。
 
       本博文将结合一个例子来讲解如何建立数据库,并为数据库建立不同权限的用户。
 
       一、登录数据库管理系统(首先要打开SQL Server数据库服务)
 
       1、用windows身份验证登录
 

windows身份验证登录

 
        2、用sql server身份验证登录,默认的登录名是sa,如果密码忘记了可以用windows身份登录后,进入
 
更改。安全性->登录名->双击sa->设置密码。
 

sql server身份验证登录

 
          二、建立数据库library
 
          1、数据库->新建数据库
 

这里写图片描述

 
         2、填写数据库名称
 

这里写图片描述

 
         三、为数据库library建立基本表:学生表student、 图书表book、借阅表borrow。并各导入一定的数据。
 
        四、创建用户。
 
        这里为简单起见,只创建两个用户——学生用户(student_user)、管理员用户(admin_user)。其中学
 
生用户只能查阅(select),而管理员用户可以查阅(select)、更新(update)、插入(insert)、删除(delete)。
 
        1、首先要创建登录名,并未登录名指定用户
 
         ① 学生用户 
 
use library 
go 
create login stu with password='123'; 

use library 
go 
create user student_user for login stu; 
          ② 管理员用户
 
use library 
go 
create user student_user for login stu; 
           2、创建角色并未角色授权
 
           ① 学生角色
 
create role student_role;
grant select on book to student_role; 
grant select on borrow to student_role; 
grant select on student to student_role; 
            ② 管理员角色
 
create role admin_role; 
grant select,update,delete,insert on book to admin_role; 
grant select,update,delete,insert on borrow to admin_role; 
grant select,update,delete,insert on student to admin_role; 
 
        3、将角色授予用户。student_role授予student_user,admin_role授予admin_user。
 
           ① student_role授予sthdent_user
 
exec sp_addrolemember 
@rolename='student_role', 
@membername='student_user'; 
            ② admin_role授予admin_user
 
exec sp_addrolemember 
@rolename='admin_role', 
@membername='admin_user'; 
 
            五、分别用stu和admin登录,可以发现stu登录后只能对基本表进行查询操作,而admin登录后除了可以查询外,还可以插入、删除、更新。这样就达到了博文开始时所述,不同权限的用户进行不同的操作,从而使得数据库更加安全。

猜你喜欢

转载自blog.csdn.net/xxc1605629895/article/details/80224188