zoukankan      html  css  js  c++  java
  • 数据库,角色,用户,安全

            登录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、首先要创建登录名,并未登录名指定用户

                  ①学生用户 

    use library
    go
    create login stu with password='123';
    
    use library
    go
    create user student_user for login stu;
    

                  ②管理员用户

    use library
    go
    create login stu with password='123';
    
    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登录后除了可以

    查询外,还可以插入、删除、更新。这样就达到了博文开始时所述,不同权限的用户进行不同的操作,从而使

    得数据库更加安全。

               六、参考资料

               http://wenku.baidu.com/view/c5bf5c3eee06eff9aef80787.html

               http://blog.163.com/jackie_howe/blog/static/19949134720122261121214/

               http://hi.baidu.com/qcomdd/item/b141a7e0d2e2a1f12a09a4a9
               http://www.verydemo.com/demo_c288_i24021.html

  • 相关阅读:
    VRRP(Virtual Router Redundancy Protocol)业界标准
    CISCO快速转发
    89、C++中将临时变量作为返回值时的处理过程
    87、C++函数调用的压栈过程
    82、类什么时候会析构?
    84、智能指针的原理、常用的智能指针及实现
    81、构造函数一般不定义为虚函数的原因
    80、构造函数析构函数可否抛出异常
    79、虚析构函数的作用,父类的析构函数是否要设置为虚函数?
    78、构造函数、析构函数的执行顺序?
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3113097.html
Copyright © 2011-2022 走看看