Oracle基本概念


  1. 用户(User):
    数据库用户即数据库的使用者, 用户账号由用户名和密码两部分组成,分别用于标识和验证用户身份。
  2. 权限(Privilege):
    在数据库,权限是指执行某种特定数据库操作的权利或许可。 例如,建立数据库连接、创建表、查询数据、插入/更新/删除数据等操作。 用户在进行数据库操作时,数据库将会首先验证用户是否拥有执行该操作的权限。
  3. 角色(Role):
    角色是一系列权限的集合,使用角色可以实现数据库用户间接授权。 这样既可以将所需的权限逐个授予某个数据库用户 ,也可以先定义若干常用的数据库角色,再对角色授予不同的权限, 然后再将角色授予数据库用户,这样就实现了对用户的批量授权,且便于将来的维护。


表空间管理

1. 查看数据库名
select name from v$database;2. 查看实例名
select instance_name from v$instance;3. 表空间是最大的逻辑单位,是个逻辑概念。
4. 查看表空间
select name from v$tablespace;5. 查看表空间及对应的数据文件
select tablespace_name, file_name from dba_data_files;6. 创建表空间(创建了一个名字为fengqing的表空间, 数据文件为'D:\APP\ADMINISTRATOR\ORADATA\ORCL\fengqing01.DBF' 大小为100m,自动增长,每次增长30M,最大没有限制)
create tablespace fengqing datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\fengqing01.DBF' size 100m autoextend on next 30m maxsize unlimited;7. 查看表空间是否为自动增长
select tablespace_name,autoextensible from dba_data_files;8. 修改表空间的数据文件为不自动增长
alter database datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\fengqing01.DBF' autoextend off9. 修改表空间的数据文件为自动增长
alter database datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\fengqing01.DBF' autoextend on next 30m maxsize unlimited;10. 增加数据文件
alter tablespace fengqing add datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\fengqing02.DBF' size 50m autoextend on next 20m maxsize unlimited;11. 只删除表空间
drop tablespace fengqing;12. 删除表空间及表空间中的对象
drop tablespace fengqing including contents;13. 删除表空间及表空间中的对象及数据文件
drop tablespace fengqing including contents and datafiles;14. 一次创建多个数据文件 create tablespace fengqing datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\fengqing01.DBF' size 50m, 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\fengqing02.DBF' size 50m autoextend on next 20m maxsize unlimited;


用户管理

  1. 以sys用户登录数据库: sqlplus sys/orcl as sysdba 或 sqlplus / as sysdba
  2. 查看当前用户:show user;
  3. 查看所有用户:select * from dba_users;
  4. 创建用户:create user 用户名 identified by 密码;
  5. 创建用户并指定默认的表空间
    create user 用户名 identified by 密码 default tablespace 表空间名;
  6. 删除用户:drop user 用户名;
  7. 切换用户:conn 用户名/密码;
  8. 从其他用户切换到sys用户:conn sys/orcl as sysdba; 或 conn / as sysdba;
  9. 给用户授予连接权限(create session):grant create session to 用户名;
  10. 退出:exit
  11. 锁定用户:alter user 用户名 account lock;
  12. 解锁用户:alter user 用户名 account unlock;
  13. 以sys用户修改其他用户密码:alter user 用户名 identified by 新密码;
  14. 用户自己修改自己的密码:alter user fengqing identified by 111; 或 password
  15. 修改sys用户密码(直接修改就行,因为登录时不需要密码)
    alter user sys identified by 123456;
  16. 查看当前用户信息:select * from user_users;
  17. 查看所有用户信息:select * from all_users;


权限管理


  1. 在数据库中,权限(Privilege)是指执行某种特定数据库操作的权利或许可。 Oracle数据库权限分为系统权限和对象权限。
  2. 系统权限是指执行某一类数据库操作的权限, 例如登录数据库(create session), 创建表(create table)等Oracle11g版本中定义了208种系统权限
  3. 查看所有系统权限:select * from system_privilege_map;
  4. 给用户授予在任何方案中建表的权限
    grant create any table to fengqing;
  5. 收回系统权限
    revoke create any table from fengqing;
  6. 给用户授予在任何方案中建表的权限并且可以转授
    grant create any table to fengqing with admin option;
  7. 对象权限是指针对某个特定数据库对象执行某种操作的权限。 例如对某一数据表中的数据进行查询操作等。
  8. 让其他用户对scott用户的emp表具有查询、修改、插入数据的权限
    grant select, update, insert on scott.emp to fengqing
  9. 收回其他用户对scott用户的emp表具有查询、修改、插入数据的权限
    revoke select, update, insert on scott.emp from fengqing;


角色管理

1. 数据库权限种类繁多,针对每个用户进行逐项权限的授予 及撤销工作量巨大且难以维护,于是引入了数据库角色的概念, 其目的是简化数据库授权操作。 角色是一系列权限的集合。
2. oracle数据库常用的预定义角色
connect:通常授予最终数据库用户。
resource:通常授予应用开发人员。
dba:数据库管理员角色。3. 给用户授予connect角色
grant connect to fengqing;4. 收回角色
revoke connect from fengqing;