Oracle数据库(权限、用户、角色、基本知识介绍)
本文章内容分布:(1)介绍数据库常见分类(2)关系型数据库概念(3)Oracle数据库基本知识介绍(4)Oracle数据库权限介绍,其中权限的内容涉及范围较大,权限在本文中和用户、角色练习较为紧密,角色是权限的集合,属于Oracle对象,创建用户需要权限,而新创建的用户要赋予权限,并且还可以给对象赋予权限。等等这些基本操作都离不开权限,所以在本文中主要学习权限!用户!角色!
关于用户与模式:
用户:对数据库的访问,需要以适当用户身份通过验证,并具有相关权限来完成一系列动作.SYS用户,缺省始终创建,且未被锁定,拥有数据字典及其关联的所有对象.SYSTEM用户,缺省始终创建,且未被锁定,可以访问数据库内的所有对象
模式(schema):是某个用户拥有所有对象的集合。具有创建对象权限并创建了对象的用户称为拥有某个模式 注意:创建数据库对象(视图,表等)的任一用户都拥有一个以该用户名称开头的模式,且被视为模式用户
(关系型)数据库相关概念
SQL(Structured Query Language)
三大范式(规范):
关于Oracle数据库简单介绍
Oracle数据库相关概念
Oracle服务
数据库的启动和关闭
监听客户端连接请求,位于服务端的、独立运行的一个后台进程,一旦建立服务器与客户端的连接,之后客户端与服务的通信不再通过它
命令行窗口 → sqlplus:启动一个SQL*Plus客户端工具 或 → sqlplus username/password [as sysdba] 或 → sqlplus /nolog:打开SQL*Plus,但不登录 → conn username/[email protected]:1521/orcl → disconnect 断开连接
spool 命令要写到的文件的路径;注意:当使用完毕后要使用spool off;
conn /as sysdba 操作系统验证
Oracle 登录验证:操作系统、数据库验证、密码文件
Oracle在刚开始的入门知识方面和mysql在权限方面有着较大的不同,在Oracle中几乎所有的操作(创建用户、创建表、删除表等等一些增删改查在没有获得权限之前是不允许执行的)在没有获得权限之前都不能够执行,在mysql中则没有那么严格,所以有必要先了解一下Oracle中权限的分配。
在创建用户之前,可以登录系统管理员权限去创建一个用户(因为系统管理员有这个权限),下面是三种用户分类:
在登陆的时候,可以选择下面三种登录方式:
比如创建一个用户和给创建的用户分配权限代码示例:(下面创建用户是在系统管理员的身份下创建的,并且系统管理员本身也有这个权限,但是如果没有赋予普通用户创建用户的权限,那么普通用户创建用户这个操作就会失败。)
(用户名:zhangsan 密码:zhangsan, 默认登陆是在users表中,并分配10M的空间)
下面语句可以在sys系统管理员登录的情况下创建的
系统权限: 允许用户执行特定的数据库动作,如创建表、创建索引、连接实例等 对象权限: 允许用户操纵一些特定的对象,如读取视图,可更新某些列、执行存储过程等
(1)系统权限:
(2)对象权限
grant 权限 on 对象名 to username[with grant option 同时获得权限分配权];
revoke 权限 on 对象名 from username;
不同的对象具有不同的对象权限,对象的拥有者拥有所有权限,对象的拥有者可以向外分配权限.关于授予系统权限与授予对象权限的语法差异:授予对象权限时需要指定关键字ON,从而能够确定权限所应用的对象.对于表和视图可以指定特定的列来授权。
对象授权示例
关于用户常见操作代码(下面的代码都是可以运行的,在windows操作系统上大写小区分不敏感,所以大部分大写的关键命令单词都可以小写):
每个Oracle用户都有一个名字和口令,并拥有一些由其创建的表、视图和其他资源。Oracle角色(role)就是一组权限(privilege) (或者是每个用户根据其状态和条件所需的访问类型)。用户可以给角色授予或赋予指定的权限,然后将角色赋给相应的用户。一个用户也可以直接给其他用户授 权。
数据库系统权限(Database System Privilege)允许用户执行特定的命令集。例如,CREATE TABLE权限允许用户创建表,GRANT ANY PRIVILEGE 权限允许用户授予任何系统权限。
数据库对象权限(Database Object Privilege)使得用户能够对各个对象进行某些操作。例如DELETE权限允许用户删除表或视图的行,SELECT权限允许用户通过select从 表、视图、序列(sequences)或快照 (snapshots)中查询信息。
(1)、3种标准角色
Qracle为了兼容以前的版本,提供了三种标准的角色(role):CONNECT、RESOURCE和DBA。
“`
(2)、创建角色
除了前面讲到的三种系统角色—-CONNECT、RESOURCE和DBA,用户还可以在Oracle创建自己的role。用户创建的role可以由 表或系统权限或两者的组合构成。为了创建role,用户必须具有CREATE ROLE系统权限。下面给出一个create role命令的实例:
现在,拥有STUDENT角色的所有用户都具有对CLASS表的select权限。
(3)、删除角色