oracle数据库笔记之数据库基本管理

来源:互联网 发布:国家的崛起人工智能 编辑:程序博客网 时间:2024/06/05 06:01

数据库的分类:
小型数据库:access,foxbase(VF?);
中型数据库:mysql  sqlserverinformix;
大型数据库:sybase<oracle<db2;

选用数据库的标准:
1 项目的规模
  a:负载量多大,用户量多大
   b:成本
   c:安全性。
负载量小,100人以内使用。成本在千元内,对安全性要求不高;
比如留言板,信息系统,选用小型数据库
 
比如在负载 日访问量:5000-15000 成本在万元内,比如商务网站
对于安全性有一定要求,中型数据库;

大型数据库:负载可以处理海量数据;安全性能很高;价格随之也就贵了;

创建用户:
create user xiaoqiang identified by 123456;
创建xiaoqiang这个用户并指定密码为123456;

登录: sqlplus xiaoqiang/123456
权限操作:(SYS用户);
系统权限:用户对数据库的相关权限;有140多个;
grant create session toxiaoqiang;分配该用户会话权限;
grant create table toxiaoqiang;分配给该用户创建表的权限;
grant unlimited tablespace toxiaoqiang;分配给该用户使用无上限表空间权限;
grant create session,create table, unlimited tablespace toxiaoqiang,rongqi
ang;
既然有授权就得有撤销权限;
revoke create table from xiaoqiang;其他的类似;
记住一般参数都是通过小括号();来传递的,而且这里的符号都必须是英文半角状态的;

对象权限:用户对其他用户的数据对象操作的权限;有25个
 grant select on rongqiang.users toxiaoqiang;将rongqiang这个用户的users表的查询权限授予xiaoqiang这个用户;
 grant delete on rongqiang.users toxiaoqiang;将rongqiang这个用户的users表的删除权限授予xiaoqiang这个用户;
 grant all on rongqiang.users toxiaoqiang;将rongqiang这个用户的users表的所有权限授予xiaoqiang这个用户;
  revoke all on rongqiang.users fromxiaoqiang;
将rongqiang用户的users表的所有操作权限从xiaoqiang这个用户收回;


这里需要注意,由于用户属于谁,则该用户的所有权限的分配权就属于谁;
比如这里rongqiang这个用户属于SYS,那么SYS就可以将rongqiang这个用户的权限分配给谁,当然也可以收回来;
类似于SYS这个对象有一个创建和收回权限这个方法,但是这个方法是属于某一个对象的;即SYS;

如果我们有批量授权的要求时,使用public关键字;实现,比如我们要给所有的用户创建表的权限可以这样做;
  grant create table to public;

对象权限的控制可以到列:比如:
 grant update(name) on xiaoqiang.users torongqiang;
 grant insert(id) on xiaoqiang.users torongqiang;
但是查询和删除不能控制到列。
 权限列表:
select * from user_col_privs;

select * from user_sys_privs;
SQL:Structured Query Language,结构化查询语句;
SQL:分为四种类型;
数据查询语言,DQL,数据定义语言,DDL,数据操作语言DML,
数据控制语言DCL;
DQL:data query language
DDL:data definition language
DML:data manage language
DCL:data control language
角色:就是权限的集合;
我们可以创建一个角色,然后由超级用户SYS或者其他可以分配权限的用户,然后给该角色赋予一些权限,然后我们可以直接把这个角色授权给用户,那么用户就具有了这个角色的所有权限;
类似于我们把一些权限封装成对象,就成了角色,然后把角色授予给用户,相当于在用户这个类中有一个角色成员变量;
角色分类:
自定义角色:
预定义角色:
权限的传递:
 grant select on xiaoqiang.users to rongqiang withgrant option; --------对象权限
grant select on scott.emp to xiaoqiang with grant option;
对象权限:将scott用户的emp表的查询权限赋予xiaoqiang用户,并允许其
传递给其他用户;用的是with grant option;
 grant alter any table to xiaoqiang with admintoption;系统权限;
需要注意的是权限的传递是一个链条,如果链条从哪里短了,即权限从中被收回了,那么被回收的这个用户及其后面的用户的该权限也消失;

 

角色:
 create role myrole;
 grant create session,create table to myrole;
 drop role myrole;

注意事项:有些权限(系统权限)无法直接赋予角色;
  create table 没有这两个alter table,droptable
  create any table:
  alter /drop any table;
 表是属于某一个用户的,角色不属于某个用户。
alter user scott identified bytiger;更改用户的密码tiger;
数据库的三种验证机制:
  操作系统验证;---|
 密码文件验证;---|这两种是SYSDBA,SYSOPER身份连接数据库的方式;
  数据库验证;

  drop user xiaoqiangcascade;如果要删除的用户已经有建有表时,需要指定cascade,即删除跟该用户有关的所有表;
 connect:是一个角色,不是权限;
dba角色:
resource角色;
tablespace角色;
方案:
权限的维护:
设置尝试登录次数及锁定时间;
create profile lock_account limit failed_login_attempts 3password_lock_ti
e 2;

设置一个配置文件,表示用户只能尝试登录三次,超过三次则被锁定,
锁定时间为2天;其中除了lock_account和数字可以变之外,都是固定写法;
SQL> alter user xiaoqiang  profilelock_account;
这是指将lock_account配置作用到xiaoqiang这个用户;
解除锁定:alter user xiaoqiang account unlock;
linux/Unix下oracle的启动过程:
lsnrctl start:启动监听
sqlplus sys/oracle assysdba:操作系统验证(在windows用户组中有已经创建好相应的用户sys_dba)
、密码文件验证;
sqlplus /nolog
conn sys/oracle as sysdba;
windows 下oracle的启动过程;
lsnrctl start

startup

 
0 0