一、启用scott用户
1、给scott用户解锁
alter user scott(username) account unlock
conn scott/tiger
2、了解scott用户下的四张表
Emp 雇员表
Dept 部门表
Salgrade 薪水等级表
Bonus 奖金表
3、连接scott用户
conn scott/tiger(默认锁定)
首先要解锁:
conn sys/oracle as sysdba(须在系统用户下解锁)
alter user scott account unlock;
conn scott/tiger (连接成功)
4、查看用户下有哪些表
select table_name from user_tables;
二、创建表空间
表空间实际上是数据库的逻辑存储结构,可以理解为在数据库中开辟的一个空间,用于存放数据库的对象,一个数据库可由多个表空间构成。
表空间实际上是由一个或多个数据文件构成的,数据文件的位置和大小可由用户自己定义。
我们所操作的表和其他数据对象是存放在数据文件里的。那么数据文件是物理存储结构,而表空间是逻辑存储结构。
1、创建表空间的语法
create [TEMPORARY](临时的) TABLESPACE(表空间)
tablespace_name(表空间名)
TEMPFILE|DATAFILE 'xx.dbf' size xx;
例:create (temporary) tablespace test1_tablespace datafile(tempfile) 'test1file.dbf' size 10m;
2、查找创建的表空间的位置
select 'file_name' from dba_data_files where tablespace_name = 'TEST1_TABLESPACE';
3、修改表空间
alter database --修改表空间文件大小
datafile ‘F:\oracle\product\10.1.0\oradata\orcl\hello.dbf’
resize 10M;
alter tablespace hello --为表空间hello添加一个数据文件
add datafile 'F:\oracle\product\10.1.0\oradata\orcl\helloAdd.dbf'
size 10M
三、oracle的用户管理
1、创建用户
create user <user_name>
identified by <password>
default tablespace <default tablespace_name>
temporary tablespace <temporary tablespace_name>
例:
create user yan identified by test
default tablespace test1_tablespace
temporary tablespace temptest1_tablespace;
2、查看创建的用户
select username from dba_users;(数据库所有用户信息)
3、给创建的用户授权
grant 权限 to 用户名
例:grant connect to yan;
4、管理用户
连接用户: connect 用户名/口令
更改密码: alter user 用户名 identified by 新密码;
不希望用户登录,而又不删除其用户,可以将其锁定:
alter user 用户名 account lock;
删除用户:drop user 用户名 cascade;
//加上cascade则将用户连同其创建的东西全部删除。
四、oracle的角色管理
角色(role)就是一组权限。
用户可以给角色赋予指定的权限,然后将角色赋给相应用户。
三种标准角色
1、CONNECT(连接角色,对普通用户授予)
拥有connect权限的用户只能登录oracle,不能创建实体和数据库结构。
2、RESOURCE(资源角色,对普通用户授予)
拥有resource权限的用户只能创建实体,不能创建数据库结构。
3、DBA(数据库管理员角色,对DBA管理用户授予)
拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
1、创建角色
create role 角色名;
例:create role manager;
2、为角色赋权
grant 权限 to 角色;
例:grant create table,create view to manager;(赋予建表、建视图的权限)
3、将角色赋予用户
grant 角色 to 用户;
例:grant manager to user01,user02;
五、用户的权限管理
权限指的是执行特定命令或访问数据库对象的权利。保证了系统安全性和数据安全性。
系统权限是对用户而言,实体权限针对表和视图而言。
1、查询oracle所有的系统权限:
select * from system_privilege_map;
2、常用的系统权限:
create session 创建会话
create sequence 创建序列
create table 创建表
create user 创建用户
alter user 更改用户
drop user 删除用户
create view 创建视图
3、授予权限的语法格式:
grant privilege[,privilege...] to user[,user|role(一个或多个用户),PUBLIC(所有用户)...]
例:grant create table,create sequence to manager;
grant manager to user01,user02;
注:这是对用户user01,user02分配了创建表和序列的权限。
4、回收系统权限
revoke {privilege(权限)| role(角色)} from {user_name|role_name|PUBLIC}
例:revoke manager from user01; //从user01回收角色
revoke create table,create sequence from manager;
//从角色manager回收权限
5、对象权限
查询oracle所有对象权限
select * from table_privilege_map
常用的对象权限如下:
select,update,insert,delete,all等 //all包括所有权限
6、授予对象权限
grant object_priv(对象权限)|ALL[(column)](所有权限) on
object to {user|role|PUBLIC}
例:grant select,update,insert on scott.emp to manager2;
//针对scott用户下的emp表授予查询,更新,插入权限给角色
grant manager2 to user03; //将角色赋予用户
7、回收对象权限
revoke {privilege[,privilege...]|ALL} on object from {user[,user...]|role|PUBLIC}
例:revoke all on scott.emp from user04;
//撤销user04针对scott下emp表的所有操作权限