SQL用户和权限

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
home back first prev next last
23
学习目的
• 如果您与他人共用同一台计算机, 无论是在学校还是家中,都可能有 过您正在使用或已保存的内容被他 人查看、更改或删除的经历。要是 能控制他人对您个人文件的权限就 好了!对于数据库来说,正如您在 学校或家中使用电脑的情况一样, 数据安全非常重要。 • 在本课中,您将学习如何授予或撤 消对数据库对象的访问权限,从而 控制哪些人可以更改、删除、更新、 插入、索引或引用数据库对象。
home back first prev next last
19
术语
• 本课中使用的关键术语包括:
– Privilege(权限) – System privileges(系统权限)
– Object privileges(对象权限)
– System security(系统安全性) – Object security(对象安全性)
home back first prev next last
4
数据库安全性
• 数据库安全性可以分成以下两个类别:
– 系统安全性包括在系统级别上访问和使用数据库, 例如创建用户、用户名和口令,为用户分配磁盘 空间,授予用户可以执行诸如创建表、视图和序 列的系统权限。有一百多种不同的系统权限。 – 数据安全性(也称为对象安全性)与对象权限关 联,对象权限包括访问和使用数据库对象以及用 户可对这些对象执行的操作。这些权限包括可以 执行DML 语句。
SELECT 权限。不能对单个列授予SELECT 权限。 4. 对同义词授予的权限会转换为对同义词所引用基 表的权限。换而言之,同义词是简单、更易于使用 的新名称。使用该名称授予权限就如同对表本身授 予权限一样。
home back first prev next last
15
PUBLIC 关键字
21
创建和撤消对象权限
学习内容
• 在本课中,您将学习:
– 描述“角色(ROLE)”的定义及其具有的优点 – 构建一个语句,以便创建一个角色并为该角色 授予权限 – 构建GRANT ..ON ..TO..WITH GRANT OPTION 语句 将对方案中对象的权限分配给其他用户和(或) PUBLIC(公众) – 构建并执行语句,从用户和(或)PUBLIC“撤消 (REVOKE)”对象权限 – 说明数据库链接的用途
11
用户系统权限
• 用户必须拥有CREATE SESSION 权限和用户 标识才能访问数据库。 • 在Oracle Application Express 中不能发出 CREATE SESSION 命令,此操作自动在后台 执行。 • 但是在 sqlplus 中可以执行 CREATE SESSION 命令
2
学习目的
• 如果您与他人共用同一台计算机,无论是在 学校还是家中,都可能有过您正在使用或已 保存的内容被他人查看、更改或删除的经历。 要是能控制他人对您个人文件的权限就好了! 对于数据库来说,正如您在学校或家中使用 电脑的情况一样,数据安全非常重要。 • 在本课中,您将学习如何授予或撤消对数据 库对象的访问权限,从而控制哪些人可以更 改、删除、更新、插入、索引或引用数据库 对象。
home back first prev next last
14
对象安全性
2.可以针对表中的单ERT 权限。例如:
GRANT UPDATE(salary) ON employees TO allison_plumb;
3.可以通过创建包含列子集的视图,只对视图授予
home back first prev next last
8
系统权限
• DBA 通过执行CREATE USER 语句创建了用户。
CREATE USER 用户 IDENTIFIED BY 口令; CREATE USER scott IDENTIFIED BY ur35scott;
• 此时,用户没有任何权限。然后,DBA 可以 为该用户授予所需的权限。 • 使用ALTER USER 语句,用户可以更改他们的 口令。
home back first prev next last
12
对象安全性
• 这一级别的安全性包括访问和使用数据库对 象以及用户可对这些对象执行的操作。
home back first prev next last
13
对象安全性
• 每个对象都有特定的一组可授予的权限。 • 下表针对各种对象列出了相应的权限。关于对象 权限,请务必注意以下四点: – 1. 适用于序列的权限只有SELECT 和ALTER。请 记住,序列使用ALTER 可以更改INCREMENT、 MAXVALUE、CACHE/NOCACHE 或 CYCLE/NOCYCLE 选项。使用ALTER 不能更改 START WITH。
home back first prev next last
24
角色
• 角色是可以授予用户的相关 权限组。角色使撤消和维护 权限变得更容易。一个用户 可以访问几个角色,而同一 角色也可以分配给几个用户。 角色通常是为数据库应用程 序创建的。 • 要创建和分配角色,首先 DBA 必须创建角色。然后, DBA 可以将权限分配给角色 或将角色分配给用户。
home back first prev next last
3
控制用户访问
• 在多用户环境下,需要维护 数据库访问和使用的安全性。 为了Oracle Server 数据库安全 性,可以执行以下操作:
– 控制数据库访问权限 – 授予对数据库中特定对象的访 问权限 – 使用Oracle 数据字典确认授予 的权限和收到的权限 – 为数据库对象创建同义词
-- 口令已更改 alter user s02 identified by s0202;
-- 作为 sys 执行,口令已更改 alter user s02 identified by s02;
home back first prev next last
10
用户系统权限
• DBA 使用GRANT 语句可将系 统权限分配给用户。系统权 限决定了用户在数据库级别 上可以执行的操作。一旦将 权限授予了用户,该用户便 可以立即使用这些权限。
– 指定了不存在的表或视图 – 尝试对您不具有适当权限的表或视图执行了某 项操作
home back first prev next last
18
确认授予的权限
• 您可以访问数据字典来查看 您所拥有的权限。右侧的表 对各种数据字典视图进行了 说明。 • 使用Oracle Application Express Developer,输入 USER_ROLE_PRIVS,选择放 大镜,然后选择“Query By Example(按示例查询)”中 的任意项。此时会返回他们 的权限。
home back first prev next last
25
角色
• 使用以下语法创建角色:
CREATE ROLE role_name;
– 创建角色之后,DBA 可以使用GRANT 语句将角 色分配给用户,也可以将权限分配给角色。所 给示例创建了一个经理角色,并允许经理创建 表和视图。然后将该角色授予某个用户。现在, 该用户可以创建表和视图。如果为用户授予多 个角色,则这些用户会收到与所有这些角色相 关联的所有权限。 – 注:CREATE ROLE 是尚未分配给Academy 教室 的系统权限。
home back first prev next last
5
权限和方案
• 权限是指执行特定SQL 语句的权利。 • DBA 是高级用户,该类用户可以授予其他用 户访问数据库及其对象的权限。 • 用户需要具有系统权限才能访问数据库;需 要具有对象权限才能处理数据库中对象的内 容。 • 用户还具有可为其他用户或角色(称为相关 权限组)授予其它权限的权限。
home back first prev next last
6
权限和方案
• 方案是对象(例如表、视图和序列)的集合。
• 方案归数据库用户所有且与该用户同名。
• 在本课中,您的方案名是您所在城市、国家 /地区、学校名、课程名和学生编号的组合。 例如:uswa_skhs_sql01_s22.
home back first prev next last
• 表的所有者可以使用PUBLIC 关键字将访问 权限授予所有用户。 • 以下示例允许系统中的所有用户查询艾丽丝 的“部门”表中的数据。
GRANT select ON alice.departments TO PUBLIC;
home back first prev next last
16
PUBLIC 关键字
– Schema(方案)
– Role(角色) – GRANT privilege(GRANT 权限) – PUBLIC keyword(PUBLIC 关键字) – CREATE SESSION privilege(CREATE SESSION 权限)
home back first prev next last
• 如果语句未使用对象的全名,则Oracle 服务 器会隐式地将当前用户(或方案)的名称作 为对象名的前缀。 • 如果语句未使用对象的全名,并且当前用户 不拥有该名称的对象,则系统会使用PUBLIC 作为对象名称的前缀。
– 例如,如果用户scott查询 user_objects 表,而这 个表并不属于scott ,系统会使用PUBLIC. user_objects 公用同义词从数据字典视图中进行 选择。
控制用户访问
学习内容
• 在本课中,您将学习:
– 比较对象权限与系统权限间的区别 – 构建用户对数据库的访问权限所需的两个 命令 – 构建和执行GRANT…ON …TO 语句,将其 方案中对象的权限分配给其他用户和(或) “PUBLIC” – 查询数据字典以确认是否已授予权限
home back first prev next last
7
系统安全性
• 这一级别的安全性包括在系 统级别上访问和使用数据库。 有一百多种不同的系统权限。 • 通常只有DBA 才拥有能创建 或删除用户、删除表或备份 表的系统权限。 • 右侧的表中列出了一些系统 权限。一般情况下,DBA 不 会将这些系统权限授予其他 用户。您希望其他用户能删 除您的表吗?
GRANT privilege [, privilege...] TO user [, user| role, PUBLIC...];
GRANT create session, create table, create sequence, create view TO scott;
home back first prev next last
home back first prev next last
– 例如,如果用户scott查询departments表,系统 会从scott. Departments 表中进行检索。
17
确认授予的权限
• 如果您尝试执行未经授权的操作,例如从某 个表中删除一行,而对于这个表您不具有 DELETE 权限,则Oracle 服务器不会执行该 操作。 • 如果收到Oracle 服务器错误消息“table or view does not exist(此表或视图不存在)”, 则表明您可能执行了以下操作之一:
ALTER USER scott IDENTIFIED BY imscott35;
home back first prev next last
9
系统权限
-- 作为 sys 执行 create user s02 identified by s02; grant create session to s02; -- 作为 s02 执行 connect s02/s02 @xe;
20
小结
• 在本课中,您应该已经学会: – 比较对象权限与系统权限间的区别 – 构建用户对数据库的访问权限所需的两个 命令 – 构建和执行GRANT…ON …TO 语句,将其 方案中对象的权限分配给其他用户和(或) “PUBLIC” – 查询数据字典以确认是否已授予权限
home back first prev next last
相关文档
最新文档