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

数据库的分类:
小型数据库:access,foxbase(VF?);
中型数据库:mysql  sqlserver informix;
大型数据库: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 to xiaoqiang;分配该用户会话权限;
grant create table to xiaoqiang;分配给该用户创建表的权限;
grant unlimited tablespace to xiaoqiang;分配给该用户使用无上限表空间权限;
grant create session,create table, unlimited tablespace to xiaoqiang,rongqi
ang;
既然有授权就得有撤销权限;
revoke create table from xiaoqiang;其他的类似;
记住一般参数都是通过小括号();来传递的,而且这里的符号都必须是英文半角状态的;

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


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

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

对象权限的控制可以到列:比如:
 grant update(name) on xiaoqiang.users to rongqiang;
 grant insert(id) on xiaoqiang.users to rongqiang;
但是查询和删除不能控制到列。
 权限列表:
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 with grant option; --------对象权限
grant select on scott.emp to xiaoqiang with grant option;
对象权限:将scott用户的emp表的查询权限赋予xiaoqiang用户,并允许其
传递给其他用户;用的是with grant option;
 grant alter any table to xiaoqiang with admint option;系统权限;
需要注意的是权限的传递是一个链条,如果链条从哪里短了,即权限从中被收回了,那么被回收的这个用户及其后面的用户的该权限也消失;

 

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

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

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

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

startup

<script type="text/javascript" id="wumiiRelatedItems"> </script>
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值