首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

Oracle (1)

2012-07-27 
Oracle (一)?启动Oracle 服务 Oracle开头 ?OracleServiceXXXX ?OracleOraHome90TNSListner ,只有启OracleO

Oracle (一)

?

启动Oracle 服务 Oracle开头 ?OracleServiceXXXX ?OracleOraHome90TNSListner ,只有启OracleOraHome90Listener 才可以用JDBC连接数据库。启动Oracle,只是启动一个实例而已,不像sql server一样sa登录可以看到像pubs等等数据库,而且Oracle里面不同用户登录看到的是不一样的(权限做的太好了)。

系统管理员最高权限 syschange_in_install ?有create database 权限 。

管理操作员 仅次于sys权限 system ?manager 无 create database 权限

?

?

几个概念

数据对象:表,视图,触发器,序列,存储过程,函数等。

权限:用户能够对某些任务操作,就是有这个任务操作的权限。权限是角色的组成元素。

Oracle 大概140多种权限,权限大概分两种:系统权限(描述对数据库访问的权限,建库,

建存储过程,修改密码,登录等),?

对象权限(用户对其他用户的数据对象访问的权限),系统权限有一种权限 create session ,

由于给每一个新增的用户添加权限太麻烦了,引出角色

角色:可以理解为权限的批量授权,这样就拥有了这种角色的所有权限。角色分两种:自定义角色,

预定义角色(Oracle预定义好的,如connection)

角色 connect ,dba(以具备其他两种权限) ,resource(可以在任何表空间新增表)

?

基本操作 ? ? ? ?

?--------------------------

打开sql plus,直接通过界面打开,或者 输入sqlplusw 也可以

show user; --显示当前用户名

切换身份 conn system/system密码,如果密码输入错了,讲提示以退出Oracle

disconnect 断开连接

exit 退出

desc tablename ?查看表结构

-------------------------

?

修改密码 ?

修改别人密码需要登录sys/system操作

修改自己的 输入passw 按提示操作

?

操作sql文件

-------------------------

start D:\a.sql; ?运行一条sql

edit D:\aa.sql; ?修改sql文件

-------------------------

spool ?D:\yy.sql

接着 执行一个命令 -- 把执行的语句信息导入到yy.sql里面

spool off;

--------------------------

sql plus显示设置

set linesize ?设置每条行多少

set pagesize ?设置每页多少条

?

?

--------------------------

? select * from emp where name = '$name' ?很少用,提示输入值

用户操作:(必须要system/sys登录

创建用户, create user ?youname identified by youpassword

修改别人密码 ,或有alter user系统权限 ?password ?youname

删除用户不可以删除自己 drop user 在删除的时候带一个参数 cascade 级联删除,把用户和用户的表都删除

创建的用户刚开始什么权限都没,登录都不可以。要给其分配权限

grant connect to youname ?给一个用户登录权限(角色)

权限:

Oracle权限可以精确到你可对某一个表进行某种操作,比如只能查看而且只能看符合某些条件的数据。

grant connect to youname 赋给了用户权限,但是不能创建表

grant ?resource to youname 这样用户可以创建表

?

授权:

如果youname 用户想访问scott的emp表,需要赋予其对象权限

grant select on emp to youname

谁可以授权? sys/system/拥有数据对象的用户(scott)

youname登录 查询 select * from scott.emp ;

这里是scott的表。提出术语叫方案;

?

这里可以看到每个用户都有自己的表空间,所以同一个数据库,不同的用户可以创建同名的表

?

如果增删改查都要赋予某用户了,一个一个添加权限吗?

grant all on emp to youname ?对这个表所有权限都给youname

收回权限 revoke ?

Scott 收回对youname的权限

谁收回授权? 赋权者 (sys/system也不可以,所以要scott登录收回授权)

remoke select on emp from youname ?(select 可以为update,delete,all等)

如果youname 权限回收了,youname给别人授权的人也没了这些权限,回收权限是级联回收的。

?

?

传递权限,权限维护:

比如scott 把权限给了youname ,但是希望youname也可以把权限给别人,这就是权限传递

如果是对象权限:grant select on scott.emp to youname with grant option?

?

系统权限 grant connect to youname with admin option?

youname 可以把connect权限赋给其他用户

?

?

?管理用户口令(profile)

账户锁定,对攻击者锁定

create profile my_lock_account limit failed_login_attempts 3?

password_lock_time 2;

创建一个profile规则,如果登录失败三次就锁定账号2天

?

对youname执行规则 alter user youname profile my_lock_account

?

对youname 解锁 alter user youname ?account unlock?

这样youname 就可以解锁成功了

?

dba要求用户每隔多少天(10)要修改,宽限期(2)

create profile myprofile limit password_life_time 10?

password_grace_time 2

?

解锁 alter youname profile myprofile

?

口令历史(定期修改时,以前用过的密码不能用)

create profile password_history limit password_life_time 10 password_grace_time?

2 password_reuse_time 10

?

删除规则 drop ?profile ?password_history [cascade]

?

?

热点排行