数据库,角色,用户,安全
 
     登录SQL server 2008可以用windows身份验证也可以用sql server身份验证,不论那种,进入数据库后
 
都拥有超级用户的权限,这显然是不太安全的。合理的做法是:对于一个数据库,应该是由不同权限的用户
 
进行操作和管理。
 
       本博文将结合一个例子来讲解如何建立数据库,并为数据库建立不同权限的用户。
 
       一、登录数据库管理系统(首先要打开SQL Server数据库服务)
 
       1、用windows身份验证登录
 
 
        2、用sql server身份验证登录,默认的登录名是sa,如果密码忘记了可以用windows身份登录后,进入
 
更改。安全性->登录名->双击sa->设置密码。
 
 
          二、建立数据库library
 
          1、数据库->新建数据库
 
 
         2、填写数据库名称
 
 
         三、为数据库library建立基本表:学生表student、图书表book、借阅表borrow。并各导入一定的数据。
 
        四、创建用户。
 
        这里为简单起见,只创建两个用户——学生用户(student_user)、管理员用户(admin_user)。其中学
 
生用户只能查阅(select),而管理员用户可以查阅(select)、更新(update)、插入(insert)、删除(delete)。
 
        1、首先要创建登录名,并未登录名指定用户
 
              ①学生用户 
[sql] 
use library  
go  
create login stu with password='123';  
  
use library  
go  
create user student_user for login stu;  
              ②管理员用户
 
[sql] 
use library  
go  
create login stu with password='123';  
  
use library  
go  
create user student_user for login stu;  
         
           2、创建角色并未角色授权
 
                ①学生角色
 
[sql] 
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;  
                ②管理员角色
 
[sql] 
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
 
[sql] 
exec sp_addrolemember   
@rolename='student_role',  
@membername='student_user';  
                  ②admin_role授予admin_user
 
[sql] 
exec sp_addrolemember   
@rolename='admin_role',  
@membername='admin_user';  
 
            五、分别用stu和admin登录,可以发现stu登录后只能对基本表进行查询操作,而admin登录后除了可以
 
查询外,还可以插入、删除、更新。这样就达到了博文开始时所述,不同权限的用户进行不同的操作,从而使
 
得数据库更加安全。
 

SQl Server 中登录名 、用户、角色、概念一览的更多相关文章

  1. SQL SERVER服务器登录名、角色、数据库用户、角色、架构的关系

    原创链接:https://www.cnblogs.com/junfly/articles/2798023.html SQL SERVER 基础教程中关于服务器登录名.服务器角色.数据库用户.数据库角色 ...

  2. SQL Server客户端登录名与数据库用户关联

    数据库迁移之后,在新的SQL Server客户端工具设置关联时,往往会报错: 用户.组或角色 'XXX' 在当前数据库中已存在. 解决方法: 首先介绍一下sql server中“登录”与“用户”的区别 ...

  3. SQL语句操作SQL SERVER数据库登录名、用户及权限

    要想成功访问 SQL Server 数据库中的数据, 我们需要两个方面的授权: 获得准许连接 SQL Server 服务器的权利: 获得访问特定数据库中数据的权利(select, update, de ...

  4. SQL 登录名 用户 角色

    参考博客:http://www.cnblogs.com/ChineseMoonGod/p/5860449.html,非常感谢博主的知识分享. 1.创建一个登录名,完全操作数据库权限,步骤为:创建登录名 ...

  5. SQL Server新建登录名,实现SQL Server身份验证模式

    一.如果是默认安装,没有选择SQL Server和Windows身份验证模式,需要重新设置. 1.右击服务器,属性,常规项中点选“SQL Server和Windows身份验证模式” 2.点击“确定”按 ...

  6. sql server中的孤立用户

    此问题出现在数据库的移值上.移值后,数据库的登陆名和数据库用户名孤立,原数据中,用建立的用户名密码登陆可以访问数据库,但是移值后就不能访问了.而且如果您尝试向该登录帐户授予数据库访问权限,则会因该用户 ...

  7. Microsoft SQL Server 数据库服务器管理维护角色

    固定服务器角色: 按照从最低级别的角色(bulkadmin)到最高级别的角色(sysadmin)的顺序进行描述: Bulkadmin:这个服务器角色的成员可以运行BULK INSERT语句.这条语句允 ...

  8. SQL Server中的CLR编程——用.NET为SQL Server编写存储过程和函数

    原文:SQL Server中的CLR编程--用.NET为SQL Server编写存储过程和函数 很早就知道可以用.NET为SQL Server2005及以上版本编写存储过程.触发器和存储过程的,不过之 ...

  9. SQL SERVER 2008 服务器登录名、角色、数据库用户、角色、架构的关系

    sql server登录名.服务器角色.数据库用户.数据库角色.架构区别联系 1.一个数据库用户可以对应多个架构(架构是表容器).架构里面包含的是数据库表. 2.一个数据库角色有可能涉及多个架构.数据 ...

随机推荐

  1. 转Postman请求Https接口

    转自:https://blog.csdn.net/ONS_cukuyo/article/details/79172242 单向认证 像平常一样访问就行,无需做任何处理,只需要把http://变成htt ...

  2. java 中的 i++ 和 ++i

    熟悉c/c++中的i++和++i,那么你知道下面的java代码效果是什么吗? 一 . 代码示例 /** * * @author elelule * */ public class TestPlusPl ...

  3. Spring Web Flow 入门demo(三)嵌套流程与业务结合 附源代码

    上篇博客我们说Spring web Flow与业务结合的方式主要有三种,以下我们主要介绍一下第三种的应用方式 3,运行到<action-state> 元素 SpringWeb Flow 中 ...

  4. [转载]Axis2 and CXF的比较

    在Celtix 和XFire 宣布合并的同年,另一个著名开源Web 服务框架Axis 的后继者Axis2 也诞生了.Axis2 并非Axis 的2.0 版,而是完全重写了Axis 的新项目.作为功能和 ...

  5. java.io.IOException: Illegal partition for 67 (-1)

    今天写MapReduce的分区进行排序的功能,自己写了一个Partitioner,然后用的时候就错了 public static class MyPartition extends Partition ...

  6. 修改Linux字符集

    1.查看操作系统中安装的locale信息 ls /usr/lib/locale 2.创建.i18n文件 在用户目录下创建.i18n文件,并添加如下内容: LANG="zh_CN.utf8&q ...

  7. VSCode 运行go test显示打印日志

    在VSCode中运行go test,在代码中写的 fmt.Printf("TestB \n") 这些语句均不打印,只显示最终的结果 PASS ok github.com/B .03 ...

  8. Centos date 设置自定义时间

    [1]手动修改 (1)设置日期 # date -s 20190315 (2)设置时间 # date -s 15:23:34 (3)设置日期和时间 # date -s "20190315 15 ...

  9. SVN版本号控制软件-图片含义具体解释

    转载请注明出处:http://blog.csdn.net/zhuwentao2150/article/details/51195154 自己定义SVN图标显示风格 SVN的图标是能够自己定义风格的 右 ...

  10. GoogleMap-------API KEY申请流程

    前言:此文是关于Google Maps Android API v2 KEY的申请流程介绍. 1.首先访问https://code.google.com/apis/console/?pli=1#pro ...