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]
?
?