已阅读5页,还剩101页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第11章数据库的安全管理 本章内容 11 1SQLServer的安全机制11 2登录账号管理11 3数据库用户的管理11 4角色管理11 5权限管理 11 1SQLServer的安全机制 第11章数据库的安全管理 SQLServer的安全性管理是建立在身份验证 authentication 和访问许可 permission 两者机制上的 身份验证是确定登录SQLServer的用户的登录账号和密码是否正确 以此来验证其是否具有连接SQLServer的权限 通过认证的用户必须获取访问数据库的权限 才能对数据库进行权限许可下的操作 SQLServer身份验证模式 11 1 1身份验证 SQLServer身份验证有两种模式 Windows身份验证模式和混合身份验证模式 1 Windows身份验证模式该模式使用Windows操作系统的安全机制验证用户身份 只要用户能够通过Windows用户账号验证 即可连接到SQLServer而不再进行身份验证 这种模式只适用于能够提供有效身份验证的Windows操作系统 11 1 1身份验证 2 混合身份验证模式 11 1 1身份验证 在该模式下 Windows身份验证和SQLserver验证两种模式都可用 对于可信任连接用户 由Windows验证 系统直接采用Windows的身份验证机制 否则SQLServer将通过账号的存在性和密码的匹配性自行进行验证 即采用SQLServer身份验证模式 在SQLserver验证模式下 用户在连接SQLserver时必须提供登录名和登录密码 这些登录信息存储在系统表sysxlogins中 与Windows的登录帐号无关 11 1 1身份验证 Windows身份验证模式相对可以提供更多的功能 如安全验证和密码加密 审核 密码过期 密码长度限定 多次登录失败后锁定帐户等 对于账户以及帐户组的管理和修改也更为方便 混合验证模式可以允许某些非可信的Windows操作系统帐户连接到由SQLServer 如Internet客户等 它相当于在Windows身份验证机制之后加入SQLServer身份验证机制 对非可信的Windows帐户进行自行验证 身份验证内容身份验证内容包括确认用户的帐号是否有效 能否访问系统 能访问系统的哪些数据库 11 1 2身份验证模式的设置 11 1SQLServer的安全机制 1 打开企业管理器 在树型结构窗口中展开一个服务器组 选择要设置身份验证模式的服务器 2 在该服务器上单击鼠标右键 在弹出的菜单中选择 属性 项 3 打开 属性 对话框 选择 安全性 选项卡 4 在 身份验证 处选择要设置的验证模式 同时可以在 审核级别 处选择任意一个单选按钮 来决定跟踪记录用户登录时的哪种信息 例如登录成功或失败的信息 5 单击 确定 按钮完成设置 11 1 2身份验证模式的设置 通过编辑SQLServer注册属性来完成身份验证模式的设置 11 1 2身份验证模式的设置 1 打开企业管理器 在树型结构窗口中选择要设置身份验证模式的服务器 2 在该服务器上单击鼠标右键 在弹出菜单中选择 编辑SQLServer注册属性 项 3 打开 已注册SQLServer属性 对话框 4 选择要设置的身份验证模式 单击 确定 按钮 11 1 2身份验证模式的设置 11 2登录账号管理 第11章数据库的安全管理 通过身份验证并不代表能够访问SQLServer中的数据 用户只有在获取访问数据库的权限之后 才能够对服务器上的数据库进行权限许可下的各种操作 这种用户访问数据库权限的设置是通过用户登录帐号来实现的 11 2 1创建登录账户11 2 2修改登录账户11 2 3删除登录账户 11 2登录账号管理 11 2 1创建登录账户 创建登录账户的方法有两种 一种是从Windows用户或组中创建登录账户一种是创建新的SQLServer登录账户 11 2 1创建登录账户 1 通过Windows身份验证创建登录 1 创建Windows2000用户 以管理员身份登录到Windows2000 选择 开始 程序 管理工具 计算机管理 选项 11 2 1创建登录账户 展开 本地用户和组 文件夹 选择 用户 图标 单击鼠标右键 在快捷菜单中选择 新用户 项 打开 新用户 对话框 输入用户名 密码 单击 创建 按钮 然后单击 关闭 按钮完成创建 11 2 1创建登录账户 2 使用企业管理器将Windows2000账号加入到SQLServer中 创建SQLServer登录 以管理员身份登录到SQLServer 进入企业管理器 选择要访问的服务器 展开 安全性 文件夹 右键单击 登录 项 在弹出菜单中选择 新建登录 项 打开 SQLServer登录属性 对话框 11 2 1创建登录账户 在 SQLServer登录属性 对话框的 常规 选项卡中 单击 名称 输入框旁的 浏览 按钮 在弹出对话框的 名称 列表中选择名为 xh001 的用户 单击 添加 按钮 11 2 1创建登录账户 单击 确定 按钮 返回 SQLServer登录属性 对话框 Windows用户xh001就可以连接SQLServer了 11 2 1创建登录账户 对于已经创建的Windows用户或组 可以使用系统存储过程sp grantlogin授予其登录SQLServer的权限 其语法格式如下 sp grantlogin loginame login 其中 loginame login 为要添加的Windows用户或组的名称 名称格式为 域名 计算机名 用户名 11 2 1创建登录账户 例11 1使用系统存储过程sp grantlogin将Windows用户huang加入SQLServer中 EXECsp grantlogin jsjx yp huang 或EXECsp grantlogin jsjx yp huang 该操作授予了Windows用户jsjx yp huang连接到SQLServer的权限 11 2 1创建登录账户 EXECsp grantlogin BUILTIN Users 该操作由于授予的是本地组中的用户 所以使用BUILTIN关键字代替域名和计算机名 注意 仅sysadmin或securityadmin固定服务器角色的成员可以执行sp grantlogin 后面内容的sp addlogin sp password sp defaultdb sp defaultlanguage等存储过程也具有相同权限 例11 2授予本地组Users中的所有用户连接SQLServer的权限 11 2 1创建登录账户 如果使用混合验证模式或不通过Windows用户或用户组连接SQLServer 则需要在SQLServer下创建用户登录权限 使用户得以连接使用SQLServer身份验证的SQLServer实例 2 创建SQLServer登录 11 2 1创建登录账户 打开企业管理器 在树型结构窗口中展开要设置身份验证模式的服务器 展开 安全性 选项 用鼠标右键单击其中的 登录 项 在弹出的快捷菜单中单击 新建登录 命令 打开 新建登录 对话框 参见图11 7 在 新建登录 对话框的 常规 选项卡的 名称 框中输入SQLServer登录的名称 例如ZG001 选中 SQLServer身份验证 在 密码 框中输入密码 例如001 在 数据库 下拉框中选择登录到SQLServer实例后要连接的默认数据库 例如master数据库 在 语言 对话框中 选择显示给用户的信息所用的默认语言 单击 确定 按钮 确认密码 对话框输入确认新密码 如001 单击 确定 按钮完成操作 1 使用企业管理器创建登录账户 11 2 1创建登录账户 2 使用系统存储过程sp addlongin创建登录 sp addlogin语法格式如下 sp addlogin loginame login passwd password defdb database deflanguage language sid sid encryptopt encryption option 1 loginame login 登录名称 login没有默认设置 2 passwd password 登录密码 默认设置为NULL 设置后password被加密并存储在系统表中 3 defdb database 登录的默认数据库 默认设置为master 4 deflanguage language 用户登录SQLServer时系统指派的默认语言 默认值为NULL 若未指定语言 那么language被设置为服务器当前的默认语言 sid sid 安全标识号 SID Sid的数据类型为varbinary 16 默认设置为NULL 如果sid为NULL 则系统为新登录生成SID 6 encryptopt encryption option 指定存储在系统表中的密码是否要加密 encryption option的数据类型为varchar 20 其值可以为NULL skip encryption或skip encryption old 分别表示加密密码 默认设置 密码已加密和已提供的密码由SQLServer较早版本加密 11 2 1创建登录账户 EXECsp addlogin ZG002 002 Sales 注意 SQLServer登录和密码最多可包含128个字符 可以由任意字母 符号和数字组成 但不能包括反斜线 系统保留的登录名称 已经存在的名称 NULL或空字符串 例11 3使用系统存储过程sp addlongin创建登录 新登录名为 ZG002 密码为 002 默认数据库为 Sales 11 2 1创建登录账户 EXECsp addlogin ZG003 该操作为用户ZG003创建一个SQLServer登录名 没有指定密码和默认数据库 使用默认密码NULL和默认数据库master 例11 4创建没有密码和默认数据库的登录 登录名为 ZG003 11 2 1创建登录账户 创建了登录账户后 如果需要确定用户是否有连接SQLServer实例的权限 以及可以访问哪些数据库的信息时 可以使用系统存储过程sp helplogins查看 sp helplogins的语法格式如下 sp helplogins LoginNamePattern login 其中 LoginNamePattern login 为登录名 若没有指定login 则返回有关的所有用户的信息 返回信息包括登录名 安全标识符 默认连接的数据库 默认语言 映射的用户帐户及所属角色等 与sp addlogin的参数基本对应 3 查看用户 11 2 1创建登录账户 例11 5查看账户信息 EXECsp helplogins ZG002 该操作查询有关登录ZG002的信息 11 2登录账号管理 sp password的语法格式为 sp password old old password new new password loginame login sp defaultdb的语法格式为 sp defaultdb logname login defdb databases sp defaultlanguage的语法格式为 sp defaultlanguage loginame login language language 11 2 2修改登录账户 例11 6给例11 4创建的登录ZG003添加密码 修改默认数据库设置为Sales EXECsp passwordnull 123 ZG003 execsp defaultdb ZG003 sales 11 2登录账号管理 11 2 3删除登录账户 1 使用企业管理器删除登录其操作步骤如下 1 打开企业管理器 在树型结构窗口中展开一个服务器组 选择服务器并展开 2 展开 安全性 文件夹 单击 登录 项 3 在 登录 详细列表中鼠标右键单击要删除的用户 这里选择 jsjx yp xh001 确定删除 注意 这时没有删除Window2000用户 只是该用户不能登录SQLServer了 11 2登录账号管理 删除登录账号有两种形式 删除Windows用户或组登录和删除SQLServer登录 1 删除Windows用户或组登录sp revokelogin的语法格式为 sp revokelogin liginame login 其中 liginame login 为Windows用户或组的名称 使用sp revokelogin从SQLServer中删除用sp grantlogin创建的Windows用户或组的登录 sp revokelogin并不是从Windows中删除了指定的Windows用户或组 而是禁止了该用户用Windows登录帐户连接SQLServer 如果被删除登录权限的Windows用户所属的组仍然有权限连接SQLServer 则该用户也仍然可以连接SQLServer 2 使用Transact SQL语句删除登录账号 11 2登录账号管理 EXECsp revokelogin jsjx yp huang 或EXECsp revokelogin jsjx yp huang 例11 7使用系统存储过程sp revokelogin删除例11 1创建的Windows用户 jsjx yp huang 的登录账号 11 2登录账号管理 使用sp droplogin可以删除SQLServer登录 其语法格式如下 sp droplogin loginame login 其中 loginame login 为要删除的SQLServer登录 要删除的登录不能为sa 拥有现有数据库的登录 在msdb数据库中拥有作业的登录 当前正在使用且被连接到SQLServer的登录 例11 8使用系统存储过程sp droplogin删除SQLServer登录账号ZG001 EXECsp droplogin ZG001 2 删除SQLServer登录 11 3数据库用户的管理 第11章数据库的安全管理 对于每个要求访问数据库的登录 必须将用户帐户添加到数据库中 并授予其相应的活动权限 1 使用企业管理器创建数据库用户其操作步骤如下 1 打开企业管理器 选定要访问的服务器 2 展开 数据库 文件夹 选定需要增加用户的数据库 3 鼠标右键单击该数据库 从弹出的快捷菜单中选择 新建 数据库用户 选项 打开 数据库用户属性 对话框 11 3数据库用户的管理 4 打开 数据库用户属性 对话框 4 在 数据库用户属性 对话框的 登录名 下拉框中选择允许访问数据库的登录账号 如ZG001 并指定使用的用户名和该用户所属的数据库角色等信息 用户名与登录名可以不同 5 单击 确定 完成该数据库用户的创建 2 使用系统存储过程创建数据库用户 SQLServer使用系统存储过程sp grantdbaccess为数据库添加用户 其语法格式如下 sp grantdbaccess loginame login name in db name in db OUTPUT 1 loginame login 当前数据库中新安全帐户的名称 Windows组或用户必须用域名限定 2 name in db name in db OUTPUT 数据库中帐户名称 name in db为OUTPUT变量 默认值为NULL 11 3数据库用户的管理 例11 9使用系统存储过程在当前数据库中增加一个用户 EXECsp grantdbaccess ZG002 1 使用企业管理器删除数据库用户在SQLServer企业管理器中 选中 用户 图标 在右面窗格中右键单击想要删除的数据库用户 在弹出菜单中选择 删除 项 则从当前数据库中删除该数据库用户 2 使用系统存储过程删除数据库用户sp revokedbaccess的语法格式为 sp revokedbaccess name in db name 将数据库用户从当前数据库中删除 3 删除数据库中的用户或组 11 3数据库用户的管理 EXECsp revokedbaccess ZG002 注意 1 该存储过程不能删除以下用户 public角色 dbo角色 INFORMATION SCHEMA用户 数据库中固定角色 master和tempdb数据库中的guest用户 WindowsNT组中的用户等 用户与登录的区别 在建立新的服务器登录时 可以指定用户为某个数据库用户 在建立登录后才可以在特定的数据库中将用户添加为数据库用户 用户是对数据库而言 属于数据库级 登录是对服务器而言 用户首先必须是一个合法的服务器登录 登录属于服务器组 例11 10使用系统存储过程在当前数据库中删除指定的用户 11 3数据库用户的管理 11 4角色管理 第11章数据库的安全管理 在SQLServer中 角色是为了方便权限管理而设置的管理单位 它将数据库中的不同用户集中到不同的单元中 并以单元为单位进行权限管理 该单元的所有用户都具有该权限 11 4 1SQLServer角色的类型11 4 2固定服务器角色管理11 4 3数据库角色管理11 4 4用户定义数据库角色 11 4角色管理 11 4 1SQLServer角色的类型 SQLServer中有两种角色类型 固定角色和用户定义数据库角色 1 固定角色 涉及服务器配置管理以及服务器和数据库的权限管理 固定角色分为固定服务器角色 独立于各个数据库 具有固定的权限 可以在这些角色中添加用户以获得相关的管理权限 固定数据库角色 是指角色所具有的管理 访问数据库权限已被SQLServer定义 并且SQLServer管理者不能对其所具有的权限进行任何修改 SQLServer中的每一个数据库中都有一组固定数据库角色 在数据库中使用固定数据库角色可以将不同级别的数据库管理工作分给不同的角色 从而很容易实现工作权限的传递 11 4 1SQLServer角色的类型 表11 1固定服务器角色 11 4 1SQLServer角色的类型 表11 2固定数据库角色 11 4 1SQLServer角色的类型 2 用户定义数据库角色 当某些数据库用户需要被设置为相同的权限 但是这些权限不同于固定数据库角色所具有的权限时 就可以定义新的数据库角色来满足这一要求 从而使这些用户能够在数据库中实现某一特定功能 用户定义数据库角色的优点是 SQLServer数据库角色可以包含Windows用户组或用户 同一数据库的用户可以具有多个不同的用户定义角色 这种角色的组合是自由的 而不仅仅是public与其他一种角色的结合 角色可以进行嵌套 从而在数据库中实现不同级别的安全性 11 4 2固定服务器角色管理 11 4角色管理 固定服务器角色不能进行添加 删除或修改等操作 只能将用户登录添加为固定服务器角色的成员 1 添加固定服务器角色成员 11 4 2固定服务器角色管理 1 打开企业管理器 选择要访问的服务器并展开 2 展开 安全性 文件夹 单击 服务器角色 项 例11 11使用企业管理器将登录ZG001添加为固定服务器角色 DatabaseCreators 成员 11 4 2固定服务器角色管理 3 在右窗格中 鼠标右键单击服务器角色 DatabaseCreators 项 在弹出的快捷菜单中选择 属性 项 打开 服务器角色属性 对话框 11 4 2固定服务器角色管理 4 单击 服务器角色属性 对话框的 添加 按钮 打开 添加成员 对话框 在 选择要添加的登录 列表中选择登录 ZG001 单击 确定 按钮完成操作 11 4 2固定服务器角色管理 固定服务器角色成员的添加 固定服务器角色成员的添加也可以从 安全性 的登录项实现 操作步骤如下 1 在展开的服务器的 安全性 文件夹中 单击 登录 项 11 4 2固定服务器角色管理 2 在右窗格中选择登录成员 ZG001 双击鼠标 打开 SQLServer登录属性 对话框 3 在 SQLServer登录属性 对话框中选择 服务器角色 选项卡 选中 DatabaseCreators 服务器角色的复选框 单击 确定 按钮完成操作 11 4 2固定服务器角色管理 sp addsrvrolemember用于添加固定服务器角色成员 语法格式为 sp addsrvrolemember loginame login rolename role 1 loginame login 添加到固定服务器角色的登录名称 2 rolename role 要加入的角色名称 role代表固定服务器角色名称 11 4 2固定服务器角色管理 EXECsp addsrvrolemember ZG002 sysadmin 例11 12使用系统存储过程将登录ZG002添加为固定服务器角色sysadmin的成员 11 4 2固定服务器角色管理 删除固定服务器角色成员的语句是sp dropsrvrolemember 其语法格式为 sp dropsrvrolemember loginame login rolename role 1 loginame login 要从固定服务器角色中删除的登录名称2 rolename role 固定服务器角色名称 role代表固定服务器角色名称 2 删除固定服务器角色成员 11 4 2固定服务器角色管理 EXECsp dropsrvrolemember ZG002 sysadmin 例11 13使用系统存储过程从固定服务器角色sysadmin中删除登录ZG002 11 4 2固定服务器角色管理 使用sp helpsrvrole sp helpsrvrolemember可了解有关固定服务器角色及其成员的信息 查看固定服务器角色sp helpsrvrole的语法格式为 sp helpsrvrole srvrolename role 其中 srvrolename role 为固定服务器角色名称 注意 固定服务器角色不能添加 修改 删除 sp helpsrvrolemember查看固定服务器角色成员语法格式为 sp helpsrvrolemember srvrolename role 3 查看固定服务器角色信息 11 4 2固定服务器角色管理 EXECsp helpsrvrole sysadmin GOEXECsp helpsrvrolemember sysadmin 例11 14查看固定服务器角色sysadmin及其成员的信息 注意 查看固定服务器角色成员的信息通过企业管理器的 安全性 服务器角色 项的 属性 对话框可以实现 1 添加数据库角色成员使用系统存储过程sp addrolemember向数据库角色中添加成员 其语法格式为 sp addrolemember rolename role membername security account 1 rolename role 数据库角色名称 2 membername security account 添加到数据库角色的登录帐户名称 11 4 3数据库角色管理 11 4角色管理 USESalesGOEXECsp grantdbaccess jsjx yp xh001 xh001 GOEXECsp addrolemember db ddladmin xh001 11 4 3数据库角色管理 例11 15向数据库Sales添加Windows用户 jsjx yp xh001 11 4 3数据库角色管理 EXECsp grantdbaccess ZG002 ZG002 GOEXECsp addrolemember db owner ZG002 例11 16向数据库添加例11 3创建的SQLServer用户ZG002为db owner角色成员 11 4 3数据库角色管理 使用sp droprolemember删除当前数据库角色中的成员 其语法格式为 sp droprolemember rolename role membername security account rolename role 为要查询的数据角色名称 若不指定角色名称 则返回所有角色的信息 membername security account 当前数据库的用户名称 可以是SQLServer用户 Windows用户 数据库角色名称 2 删除数据库角色成员 11 4 3数据库角色管理 EXECsp droprolemember db owner ZG002 例11 17删除数据库角色中的用户 11 4 3数据库角色管理 查看数据库角色及其成员的信息可以使用系统存储过程sp helpdbfixedrole sp helprole和sp helpusersp helpdbfixedrole的语法格式为 sp helpdbfixedrole rolename role sp helprole的语法格式为 sp helprole rolename role sp helpuser的语法格式为 sp helpuser name in db security account 1 rolename role 要查询的数据库角色名称 若不指定角色名称 则返回所有角色的信息 2 name in db security account 当前数据库的用户名称 可以是SQLServer用户 Windows用户 数据库角色名称 3 查看数据库角色及其成员信息 11 4 3数据库角色管理 例11 18查看当前数据库中所有用户及db owner数据库角色的信息 EXECsp helpuserEXECsp helpdbfixedrole db owner 11 4 4用户定义数据库角色 1 创建和删除用户定义数据库角色创建和删除用户定义数据库角色可以使用企业管理器和系统存储过程实现 11 4角色管理 例11 19使用企业管理器创建用户定义数据库角色 11 4 4用户定义数据库角色 1 打开企业管理器 展开选定的数据库 2 右键单击 角色 项 在弹出的快捷菜单中单击 新建数据库角色 命令 打开 新建角色 对话框 11 4 4用户定义数据库角色 3 在 名称 框中输入角色名 wang 在 数据库角色类型 项下 选择 标准角色 单选按钮 4 单击 确定 按钮完成操作 11 4 4用户定义数据库角色 例11 20使用企业管理器删除用户定义数据库角色 wang 1 打开企业管理器 展开选定的数据库 单击 角色 项 2 在若窗格中右键单击要删除的数据库角色 wang 在弹出的菜单中选择 删除 命令 3 在弹出的对话框中单击 是 按钮 完成删除操作 11 4 4用户定义数据库角色 使用sp addrole和sp droprole可以创建和删除用户定义数据库角色 其语法格式分别为 sp addrole rolename role ownername owner sp droprole rolename role 其中 ownername owner 新角色的所有者 默认值为dbo Owner必须是当前数据库中的某个角色或用户 11 4 4用户定义数据库角色 UseSalesGOEXECsp addrole role01 例11 21使用系统存储过程创建名为 role01 的用户定义数据库角色到Sales数据库中 11 4 4用户定义数据库角色 USESalesGOEXECSP droprole role01 例11 22使用系统存储过程删除数据库Sales中名为 role01 的用户定义数据库角色 11 4 4用户定义数据库角色 添加和删除用户定义数据库角色成员可以使用企业管理器和系统存储过程来完成 2 添加和删除用户定义数据库角色成员 11 4 4用户定义数据库角色 例11 23使用企业管理器将成员添加到用户定义数据库角色ZG001中 1 打开企业管理器 展开Sales数据库 2 单击 角色 项 在右窗格中 右键单击角色 role01 在弹出的菜单中选择 属性 项 打开 数据库角色属性 对话框 11 4 4用户定义数据库角色 3 在 数据库角色属性 对话框中单击 添加 按钮 打开 添加角色成员 对话框 4 在 选择要添加的用户 列表中选择登录 ZG001 单击 确定 按钮完成操作 11 4 4用户定义数据库角色 例11 24使用系统存储过程将ZG002添加为Sales数据库的role01角色的成员 USESalesGOEXECsp addrolemember role01 ZG002 11 4 4用户定义数据库角色 USESalesGOEXECsp grantdbaccess ZG003 ZG003 EXECsp addrolemember role01 ZG003 例11 25将SQLServer登录账号 ZG003 添加到Sales数据库中 其用户名为 ZG003 然后再将ZG003添加为该数据库的role01角色的成员 11 5权限管理 第11章数据库的安全管理 11 5 1权限的种类11 5 2授予权限11 5 3禁止与撤消权限11 5 4查看权限 11 5 1权限的种类 11 5权限管理 权限是指用户对数据库中对象的使用及操作的权利 当用户连接到SQLServer实例后 该用户要进行的任何涉及修改数据库或访问数据的活动都必须具有相应的权限 也就是用户可以执行的操作均由其被授予的权限决定 SQLServer中的权限包括3种类型 对象权限 语言权限和隐含权限 1 对象权限 11 5 1权限的种类 对象权限用于用户对数据库对象执行操作的权力 即处理数据或执行存储过程 INSERT UPDATE DELETE EXECUTE等 所需要的权限 这些数据库对象包括表 视图 存储过程 表11 3对象及作用的操作 11 5 1权限的种类 2 语句权限 语句权限主要指用户是否具有权限来执行某一语句 这些语句通常是一些具有管理性的操作 如创建数据库 表 存储过程等 这种语句虽然也包含有操作 如CREATE 的对象 但这些对象在执行该语句之前并不存在于数据库中 所以将其归为语句权限范畴 11 5 1权限的种类 表11 4语句权限及其作用 11 5 1权限的种类 3 隐含权限 隐含权限是指系统自行预定义而不需要授权就有的权限 包括固定服务器角色 固定数据库角色和数据库对象所有者所拥有的权限 固定角色拥有确定的权限 例如固定服务器角色sysadmin拥有完成任何操作的全部权限 其成员自动继承这个固定角色的全部权限 数据库对象所有者可以对所拥有的对象执行一切活动 如查看 添加或删除数据等操作 也可以控制其他用户使用其所拥有的对象的权限 11 5 1权限的种类 11 5 2授予权限 1 使用企业管理器授予用户或角色语句权限操作步骤如下 1 打开企业管理器 展开数据库 2 在选择的数据库上单击鼠标右键 在弹出菜单中选择 属性 项 打开 数据库属性 对话框 3 在 数据库属性 对话框中选择 权限 选项卡 进行相应的语句权限设置 2 使用企业管理器授予用户或角色对象权限 11 5 2授予权限 1 打开企业管理器 选定数据库 2 选择授予权限的对象 如表employee 单击鼠标右键 选择菜单命令 属性 3 在 表属性 对话框中单击 权限 按钮 打开 对象属性 对话框 4 在 对象属性 对话框中授予对象权限 其中 表示授予权限 表示禁止权限 空表示撤消权限 5 在选择一个特定用户或角色后 单击 列 按钮 打开 列权限 对话框 将权限控制到字段的级别 6 单击 确定 按钮 完成对象权限的设置 11 5 2授予权限 3 使用Transact SQL语句GRANT授予用户或角色权限 GRANT语句授予对象权限的语法格式为 GRANT ALL PRIVILEGES permission n column n ON table view ON table view column n ON stored procedure extended procedure ON user defined function TOsecurity account n WITHGRANTOPTION AS group role 11 5 2授予权限 GRANT授予语句权限的语法格式为 GRANT ALL statement n TOsecurity account n 1 ALL 表示授予所有可用的权限 对于语句权限来说 只有sysadmin角色才具有所有的语句权限 对于对象权限来说只有sysadmin和db owner角色才具有访问某一数据库所有对象的权限 2 statement 指定授予权限的语句 3 security account 指定权限将授予的对象或用户账户 如当前数据库的用户与角色 SQLServer角色 Windows用户或组 4 TO 指定用户帐户列表 5 permission 当前授予的对象权限 11 5 2授予权限 6 column 当前数据库中授予权限的列名 7 table 当前数据库中授予权限的表名 8 view 当前数据库中被授予权限的视图名称 9 store procedure 当前数据库中授予权限的存储过程名称 10 extended procedure 当前数据库中授予权限的扩展存储过程名称 11 user defined function 当前数据库中授予权限的用户定义函数名称 12 WITHGRANTOPTION 表示GRANT语句所授权的security account有能力将其从当前语句中获得的对象权限授予其他用户帐户 仅对对象权限有效 13 AS group role 说明要授予权限的用户从哪个角色或组继承权限 14 PRIVILEGES是可以包含在符合SQL 92标准的语句中的可选关键字 例11 26使用GRANT语句给用户ZG001授予CREATETABLE的权限 USESalesGOGRANTCREATETABLETOZG001通过企业管理器的Sales数据库的 属性 对话框的 权限 选项卡 参看图11 20 可以看到ZG001的 创建表 被选定 11 5 2授予权限 例11 27授予角色和用户对象权限 USESalesGOGRANTSELECTONgoodsTOpublicGOGRANTINSERT UPDATE DELETEONgoodsTOZG001 ZG002 11 5 2授予权限 例11 28在当前数据库Sales中给public角色赋予对表employee中employee id employee name字段的SELECT权限 USESalesGOGRANTSELECT Employee id Employee name ONEmployeeTOpublic 11 5 2授予权限 11 5 3禁止与撤消权限 禁止权限就是删除以前授予用户 组或角色的权限 禁止从其他角色继承的权限 且确保用户 组或角色将来不继承更高级别的组或角色的权限 撤消权限用于删除用户的权限 但是撤消权限是删除曾经授予的权限 并不禁止用户 组或角色通过别的方式继承权限 如果撤消了用户的某一权限并不一定能够禁止用户使用该权限 因为用户可能通过其他角色继承这一权限 11 5权限管理 1 禁止权限 禁止语句权限语句的语法格式为 DENY ALL statement n TOsecurity account n 禁止对象权限语句的语法格式为 DENY ALL PRIVILEGES permission n column n ON table view ON table view column n ON stored procedure extended procedure ON user defined function TOsecurity account n CASCADE 其中 CASCADE指定授予用户禁止权限 并撤销用户的WITHGRANTOPTION权限 11 5 3禁止与撤消权限 例11 29使用DENY语句禁止用户ZG002使用CREATEVIEW语句 USESalesGODENYCREATEVIEWTOZG002 11 5 3禁止与撤消权限 例11 30给pubic角色授予表employee上的SELETE权限 再拒绝用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年石嘴山辅警协警招聘考试备考题库含答案详解(巩固)
- 2023年益阳辅警协警招聘考试备考题库及参考答案详解1套
- 2023年阳江辅警协警招聘考试真题及参考答案详解一套
- 2023年金华辅警协警招聘考试备考题库含答案详解(新)
- 2023年甘南州辅警招聘考试题库有完整答案详解
- 2024年咸阳辅警协警招聘考试真题含答案详解(轻巧夺冠)
- 电源线弯折试验机行业深度研究报告
- 中国试剂与耗材项目投资可行性研究报告
- 车载测速雷达行业深度研究报告
- 微电机用碳刷行业深度研究报告
- 液压常用元件符号
- RB/T 218-2017检验检测机构资质认定能力评价机动车检验机构要求
- GB/T 8335-2011气瓶专用螺纹
- GB 4053.2-2009固定式钢梯及平台安全要求第2部分:钢斜梯
- CB/T 3470-1994海洋调查船专用舱室及其设施的设置要求
- 55寸电子拼接屏技术方案-5.3mm解析
- 运用PDCA提高患者身份识别正确率课件
- 大学英语三级(A级)考试核心词汇
- 华为软件需求规格说明书(SRS)
- 企业公示信息实地核查记录表
- CW6163使用说明书模版
评论
0/150
提交评论