`
步青龙
  • 浏览: 298020 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
72ba33fb-eefe-3de1-bd65-82a6e579265d
Java面试
浏览量:0
社区版块
存档分类
最新评论

Oracle (一)

 
阅读更多

 

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

系统管理员最高权限 sys change_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]

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics