启动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]