(一)用系统用户登入Oracle
(1)系统用户说明:
- Sys:这个账户相当于Sql Server中的sa账户,是个超级账户,拥有的权限最大,可以完成数据库中的所有管理任务。
- System:没有sys的权限大,通常用来创建一些用于查看管理信息的表或者视图,同样也部建议使用system架构来创建一些与管理无关的表或视图。
- Sys和system在登入oracle工具的时候,sys只能以系统管理员(sysdba)或者系统操作员(sysoper)的权限登入,而system可以直接登入(normal)。
- Sysman:是Oracle数据库中用于EM管理的用户,如果你不用改用户也可以删除。
- Scott:是Oracle提供的示例用户,里面有一些供初学者操作的数据表(emp,dep,salgrade,bonus)。(默认密码是tiger)
(2)登入普通用户的几种方式:
- win+R --> cmd --> sqlplus "/as sysdba" //以sysdba身份登录(此时可以创建用户,分配权限等)exit退出
- win+R --> cmd --> sqlplus username/password //以指定用户名/密码身份登录
- win+R --> cmd --> sqlplus 按照提示,输入用户名密码
- win+R --> cmd -->sqlplus /nolog-->conn sys/123456 @orcl as sysdba //首先以没有用户的方式进入sqlpuls,然后用sys用户登入.设置了管理身份为sysdba
(3)登入scott用户
- 先登入系统用户
- 给scott用户解锁:alter user username account unlock
- 登入scott用户:conn scott/tiger
- 使用sql语句查询该用户下的表有那些:select table from user_tables;
- 查询该用户下有四张表:
- DEPI,Emp,Donus,SALGRADE
(二)Oracle表空间的管理
(1)表空间介绍
- 数据库与表空间:表空间实际上是数据库上逻辑储存结构,可以把表空间理解为在数据库中开辟的一个空间,用于存放我们数据库的对象,一个数据库可以由多个表空间构成。
- 数据文件与表空间:表空间实际上由一个或者多个数据文件构成的,数据文件的位置和大小可以由用户自己来定义。
- 表空间的分类:永久表空间,临时表空间,UNDO表空间(回退表空间)。
(2)创建表空间
1.创建表空间的语法:
Create [tablespace(永久表空间)]/[ temporary(临时表空间) tablespace] 表空间名字 [datafile]/[tempfile]’日志文件名.dbf’ size 表空间大小m;
创建永久表空间:
Create tablespace test1_tablespace datafile’testfile.dbf’ size 10m;
2.创建临时表空间:
Create temporary tablespace temptest_tablespace tempfile’tempfile.dbf’ size 10m;
查询表空间:
3.查询表空间的储存位置
查询永久表空间的位置语法:
Select file_name from dba_data_files where tablespace_name=’表空间名字,并且名字要的大写’;
注意:如果表空间的名字没有大写就会报错未选定行.
4.查看临时表空的储存位置语法:
Select file_name from dba_temp_files where tablespace_name=”临时表空间名字,并且名字大写”;
(三)Oracle的用户管理
(1)创建用户
1.创建用户的语法:
Create user<用户名>
Identified by<用户密码>
Default tablespace<永久表空间名>
Temporary tablespace<临时表空间名>
2.创建一个用户
Create user yan
Identity by xws
Default tablespace test1_tablespace
Temprary tablespace temporary_tablespace;
(2)查看创建用户
1.查看创建用户语法:
Select usrename from dba_user;
(3)给创建的用户授权
- 语法:Grant权限to用户名
- 例子:Grant connect to yan;
(4)管理用户
- 连接用户:Connect 用户名/口令
- 更改密码:Alter user 用户名 identity by 新密码
3.不希望某个用户登入,而又不删除其用户,可以将用户锁定
Alter user 用户名 account lock;
注意:锁死该用户必须在权限比他大的用户下进行
4.删除用户:
Drop user 用户名 cascade
注意:加上cascadeade则将用户连同其创建的东西全部删除
(四)ORACLE的角色管理
(1)三种标准的角色
1.CONNECT(连接角色)
拥有Connect权限的用户只可以登入Oracle,不可以创建实体,不可以创建数据库结构.
创建用户并且给用户授予connect权限;
用管理员身份给改用户授予权限:
2.RESOURCE(资源角色)
拥有Resourse权限的用户只可以创建实体,不可以创建实体结构.
给用户授予resource权限:
授予权限之后创建表格:
3.DBA(数据库管理员角色)
拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构.
给用户授予dba权限:
新授予的用户创建表格:
注意:对于普通用户:授予:connect,resource权限。对于DBA管理用户:授予dba授权。
(2)创建角色
1.创建角色语法:
Create role 角色名;
例如:create role manger;
(3)为角色赋予权限:
Grant 权限 to 角色;
例如:
Grant create table,create view to manger;
(4)将角色赋予用户:
Grant 角色 to 用户;
例如:grant manger to user01,user02;
(5)将该用户的角色撤销
Revoke 角色名 from 用户;
(6)删除该权限
Drop role 角色名;
(五)用户的权限管理
(1)权限的分类
- 系统权限:允许用户执行特定的数据库动作,如创建表、创建索引,连接实例等。
- 对象(实体)权限:允许用户操纵一些特定的对象,如读取视图,跟新某些列,执行储存过程等。
(2)系统权限
- 查询oracle所有的系统权限:
Select * from system_privilege_map;
2.常用的系统权限如:
Create session | 创建会话 | Create sequence | 创建序列 |
Create table | 创建表 | Create user | 创建用户 |
Alter user | 更改用户 | Drop user | 删除用户 |
Create view | 创建试图 |
|
|
(3)授予系统权限
Grant prilivilege [权限名1,权限名2]to [user,role];
例如:
Grant create table,create sequence to manger;
Grant manager to user01,user02;
给用户user01授予一个会话权限:
给角色manager授予一个创建表,创建序列的权限;
将角色manager赋予给user01
注意:这句话的意思是对用户user01,user02分配创建表,创建序列的权限;
(4)回收系统权限
Revoke [权限名 | 角色名]from [user | role | public];
例如:
Revoke manager from user01;
Revoke create table,create sequence from manager;
(5)对象权限
1.查询Oracle所有对象权限:
Select * form table_privilege_map;
2.常用的对象权限如:
Select ,updata,insert,delect,all 等;
//all包括所有权限;
3.授予对象权限的语法格式:
Grant 对象权限 on 用户.表 to [角色 | 用户 | public];
例如:
Grant select,updata,insert on scott.emp to manger;
Grant manager to user01;
Grant all on scott.emp to user02;
给用户赋予对象权限:
将manager角色赋予给user0
User01用户查询scott.emp表中的数据
4.回收对象权限的语法格式:
Revoke 对象权限 on 用户.表 form [用户 | 角色 | public];
例如:
Revoke all on scott.emp from user02;
撤回manage用户的对象权限: