在SQL Server中创建用户角色及授权

/*--示例说明 示例在数据库InsideTSQL2008中创建一个拥有表HR.Employees的所有权限、拥有表Sales.Orders的SELECT权限的角色r_test 随后创建了一个登录l_test,然后在数据库InsideTSQL2008中为登录l_test创建了用户账户u_test 同时将用户账户u_test添加到角色r_test中,使其通过权限继承获取了与角色r_test一样的权限 后使用DENY语句拒绝了用户账户u_test对表HR.Employees的SELECT权限。 经过这样的处理,使用l_test登录SQL Server实例后,它只具有表Sales.Orders的select权限和对表HR.Employees出select外的所有权限。--*/

USE InsideTSQL2008

--创建角色 r_testEXEC sp_addrole 'r_test'

--添加登录 l_test,设置密码为pwd,默认数据库为pubsEXEC sp_addlogin 'l_test','a@cd123','InsideTSQL2008'

--为登录 l_test 在数据库 pubs 中添加安全账户 u_testEXEC sp_grantdbaccess 'l_test','u_test'

--添加 u_test 为角色 r_test 的成员EXEC sp_addrolemember 'r_test','u_test'

--用l_test登陆,发现在SSMS中找不到仍和表,因此执行下述两条语句出错。select * from Sales.Ordersselect * from HR.Employees

--授予角色 r_test 对 HR.Employees 表的所有权限GRANT ALL ON HR.Employees TO r_test--The ALL permission is deprecated and maintained only for compatibility. --It DOES NOT imply ALL permissions defined on the entity.--ALL 权限已不再推荐使用,并且只保留用于兼容性目的。它并不表示对实体定义了 ALL 权限。

--测试可以查询表HR.Employees,但是Sales.Orders无法查询select * from HR.Employees

--如果要收回权限,可以使用如下语句。(可选择执行)revoke all on HR.Employees from r_test--ALL 权限已不再推荐使用,并且只保留用于兼容性目的。它并不表示对实体定义了 ALL 权限。

--授予角色 r_test 对 Sales.Orders 表的 SELECT 权限GRANT SELECT ON Sales.Orders TO r_test

--用l_test登陆,发现可以查询Sales.Orders和HR.Employees两张表select * from Sales.Ordersselect * from HR.Employees

--拒绝安全账户 u_test 对 HR.Employees 表的 SELECT 权限DENY SELECT ON HR.Employees TO u_test

--再次执行查询HR.Employees表的语句,提示:拒绝了对对象 'Employees' (数据库 'InsideTSQL2008',架构 'HR')的 SELECT 权限。select * from HR.Employees

--重新授权GRANT SELECT ON HR.Employees TO u_test

--再次查询,可以查询出结果。select * from HR.Employees

USE InsideTSQL2008--从数据库中删除安全账户,failedEXEC sp_revokedbaccess 'u_test'--删除角色 r_test,failedEXEC sp_droprole 'r_test'--删除登录 l_test,successEXEC sp_droplogin 'l_test'

    <p>相关文章</p>

        <h2>SQL数据库触发器语法详解 (sql数据库触发器语法)</h2>

            2023-08-06
                            数据库
                            语法
                            触发器

        <h2>快速简单的删除Oracle数据库字段方法 (删除oracl数据库字段)</h2>

            2023-08-06
                            数据库
                            字段
                            删除

        <h2>如何打开社工数据库bak文件 (社工数据库bak怎么打开)</h2>

            2023-08-06
                            数据库
                            打开
                            社工

        <h2>实现数据库按拼音排序的方法和技巧 (数据库按拼音排序)</h2>

            2023-08-06
                            数据库
                            排序
                            按拼音

        <h2>探究Sybase数据库的性能和功能特点 (sybase数据库怎么样)</h2>

            2023-08-06
                            数据库
                            性能
                            探究

        <h2>SQL Server 如何成功建立自己的数据库? (sql server 建立数据库)</h2>

            2023-08-06
                            数据库
                            自己的
                            建立

        <h2>如何在Oracle中查看数据库触发器? (oracle查看数据库触发器)</h2>

            2023-08-06
                            数据库
                            查看
                            触发器

        <h2>数据库表数据量千万级,对性能影响有多大? (数据库表千万级数据量多吗)</h2>

            2023-08-06
                            数据库
                            级数
                            有多大

        <h2>如何使用Oracle按时间导出表数据库? (oracle按时间导出表数据库)</h2>

            2023-08-06
                            数据库
                            导出
                            如何使用

        <h2>数据库存储:帖子长期保存,信息永不丢失 (帖子存数据库)</h2>

            2023-08-06
                            数据库
                            丢失
                            帖子

        <h2>小米六数据库:全方位数据保障和优化方案 (小米六数据库)</h2>

            2023-08-05
                            数据库
                            优化
                            小米

        <h2>简易教程:使用dbe数据库实现数据连接 (dbe数据库 数据连接)</h2>

            2023-08-05
                            数据
                            数据库
                            连接

        <h2>Oracle实现多个数据库链接的简便方法 (oracle链接多个数据库)</h2>

            2023-08-05
                            数据库
                            多个
                            链接

        <h2>数据库索引:用哪种方法建立? (数据库索引用什么建的)</h2>

            2023-08-05
                            索引
                            数据库
                            哪种

        <h2>实现高效缓存同步:Redis数据库技巧大全 (redis 数据库缓存同步)</h2>

            2023-08-05
                            数据库
                            缓存
                            同步

        <h2>如何利用数据库实现高效的模糊匹配查询? (数据库实现模糊查询)</h2>

            2023-08-05
                            查询
                            数据库
                            模糊

        <h2>数据库有哪些安装方式和位置? (数据库是装在什么上)</h2>

            2023-08-05
                            数据库
                            位置
                            装在

        <h2>Lactmed数据库:妈妈们必备的喂养指南 (lactmed 数据库)</h2>

            2023-08-05
                            数据库
                            必备
                            喂养

        <h2>数据库设计中的主属性定义及作用 (数据库主属性是什么)</h2>

            2023-08-05
                            数据库
                            定义
                            属性

        <h2>数据库分区操作不当常常造成分区不清的问题 (分区不清数据库)</h2>

            2023-08-05
                            数据库
                            分区
                            不清