根据提供的文件信息,我们可以归纳出以下SQL Server数据库管理与权限控制相关的知识点: ### SQL Server 权限管理系统 #### 1. 权限管理基础概念 - **权限**:在 SQL Server 中,权限决定了用户可以执行的操作类型。这些操作包括但不限于查询、插入、更新或删除表中的数据。 - **角色**:为了方便管理权限,SQL Server 支持定义角色并将用户分配到这些角色中。角色可以被授予一系列权限,当用户被加入到角色后,便自动获得了该角色所拥有的所有权限。 #### 2. 权限管理命令 - **GRANT**:用于向用户或角色授予权限。 - **DENY**:用于拒绝用户或角色的特定权限。一旦某个对象上的权限被拒绝,则即使用户属于具有该权限的角色也无法执行该操作。 - **REVOKE**:用于撤销之前授予或拒绝的权限。撤销拒绝后的结果是没有任何显式权限,这意味着用户将依赖于其所属角色的权限。 #### 3. 权限管理案例分析 - **案例背景**:假设有一个用户 John,他已经被授予了对 Sales 架构下的 SELECT 权限。现在的需求是要移除他对 Sales.SalesOrder 表的 SELECT 访问权,但不影响其他任何权限。 #### 4. 权限管理实践 - **实现方法**: - **选项 A (DROP USER John;)**:此命令会完全删除用户 John,不仅会移除他的 SELECT 权限,还会移除所有其他权限,并且会使 John 无法再访问数据库。因此这不是正确的选择。 - **选项 B (DENY SELECT ON Sales.SalesOrder TO John;)**:此命令会拒绝 John 对 Sales.SalesOrder 表的 SELECT 权限。即使 John 属于拥有 SELECT 权限的角色,他也不能访问该表的数据。这是正确的选择。 - **选项 C (GRANT DELETE ON Sales.SalesOrder TO John;)**:此命令会授予 John 删除 Sales.SalesOrder 表中记录的权限,这并不是我们需要的操作。 - **选项 D (REVOKE SELECT ON Sales.SalesOrder FROM John;)**:此命令会撤销 John 的 SELECT 权限,但如果 John 所属的某个角色拥有该表的 SELECT 权限,那么 John 仍然可以通过角色获得访问权限。因此,这不是最合适的解决方案。 #### 5. 实例代码解析 ```sql -- 创建登录名和用户 CREATE LOGIN [John] WITH PASSWORD = '1', CHECK_POLICY = OFF GO USE [AdventureWorks2008] GO CREATE USER [John] FOR LOGIN [John] WITH DEFAULT_SCHEMA = [dbo] GO -- 授予 Salesschema 的权限 GRANT SELECT ON SCHEMA::Sales TO [John] -- 使用 John 的凭据运行 SELECT 查询,可以看到数据 EXECUTE AS USER = 'John' SELECT * FROM Sales.SalesOrderHeader REVERT -- 撤销表的权限 REVOKE SELECT ON Sales.SalesOrderHeader FROM [John] -- 即使撤销了 SELECT 权限,由于之前的 GRANT 操作,John 仍能看到数据 EXECUTE AS USER = 'John' SELECT * FROM Sales.SalesOrderHeader REVERT -- 明确拒绝 SalesOrderHeader 表的 SELECT 权限 DENY SELECT ON Sales.SalesOrderHeader TO [John] -- 运行 SELECT 查询,由于 DENY 操作,John 无法看到数据 EXECUTE AS USER = 'John' SELECT * FROM Sales.SalesOrderHeader REVERT ``` #### 6. 总结 - 在实际场景中,使用 DENY 命令来拒绝特定用户的特定权限是最直接有效的方法,因为它不受用户所属角色的影响。 - 使用 REVOKE 命令时需要小心,因为它可能会受到角色权限的影响,导致预期之外的结果。 - 了解并熟练掌握 SQL Server 中的权限管理命令对于确保数据库的安全性和合规性至关重要。 通过以上案例分析与代码示例,我们深入了解了 SQL Server 中权限管理的核心概念及其应用方式,这对于准备 SQL Server 数据库认证考试(如题目中提到的 70-433)的考生来说非常有帮助。
剩余70页未读,继续阅读
- 粉丝: 0
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助