oracle用户默认用户的区别:
system用户 密码是manager 权限是sysdba
sys 用户密码 change_on_install 权限是sysdba或者是sysoper除了没有创建数据库的权限管理数据库的权限拥有管理员的大部分权限
scott 密码 tiger 权限普通用户.
sqlplus /nolog 意思是进入sqlplus环境但是不登陆数据库用这个连接数据库是不要密码的
SQL> connect / as sysdba --以系统管理员(sysdba)的身份连接数据库;如果需要对数据库
进行管理操作,那么需要以这种方式登录数据库,或者
connect sys@service_name as sysdba,其中service_name
你配置的客户tnsname服务名. (平时可以用某个身份登陆直接可以用connect username/password;
SQL> startup --如果数据库没有启动的话,经过上述步骤连接后,正常启动数据库.
oracle用户创建和权限管理:
首先是用户的创建:
SQL>create user username identified by password (创建用户并设置密码}
SQL>create user username identified by password default tablespace system quota 5M on system (创建用户并且设置用户的表并指定用户配额)
SQL>create user username identified by password2 default tablespace system quota 10M on system (修改用户密码和配额)
SQL>drop user username cascade (删除用户及其创建的创建的实体)
在oracle中有80多种特权 授予特权我们可以通过grant privilege on database to username语句
SQL>GRANT CREATE USER,ALTER USER,DROP USER to username with admin option;(没有级联授权功能)
注意:1)如果使用WITH ADMIN OPTION为某个用户授予系统权限,那么对于被这个用户授予相同权限的所有用户来说,取消该用户的系统权限并不会级联取消这些用户的相同权限。
2)系统权限无级联,即A授予B权限,B授予C权限,如果A收回B的权限,C的权限不受影响;系统权限可以跨用户回收,即A可以直接收回C用户的权限。
收回系统特权:SQL> revoke create user,alter user,drop user from username;(没有级联收回权限的功能)
显示被授予的系统特权:SQL>select * from sys.dba_sys_privs;
对象特权的管理和控制:
oracle的对象特权指的是用户在指定的表上的权限主要包括增,删,改,查看,执行(主要是数据的存储过程),引用(其他字段表做为外键),索引等.
表的安全性:
ALTER:修改表定义;
DELETE:删除表记录;
INDEX:在表上建索引;
INSERT:向表中插入数据记录;
SELECT:查找表中记录;
UPDATE:修改表中的数据;
ALL:上述所有权限;
行级安全性Oracle行级安全性由视图实现。用视图定义表的水平子集,限定用户在视图上的操作,就为表的行级提供了保护。视图上的授权与回收与表级完全相同。
例如,只允许用户U2查看Student表中信息系学生的数据,则首先创建信息系学生的视图S_IS,然后将该视图的SELECT权限授予U2用户。
(3)列级安全性
Oracle列级安全性可以由视图实现,也可以直接在基本表上定义。
用视图定义表的垂直子集就可以实现列级安全性,方法与上面类似。
直接在基本表上定义和回收列级权限也是使用GRANT和REVOKE语句。目前Oracle的列级权限只有UPDATE,回收列级UPDATE权限时,Oracle不允许一列一列地回收,只能回收整个表的UPDATE权限例如
GRANT UPDATE(Sno,Cno)ON SC TO U2;
把对SC表中Sno列和Cno列的UPDATE权限授予U2用户
REVOKE UPDATE ON SC FROM U2;
授予对象特权:SQL>grant select,insert(table1,table2),update(desc) on tablename to username with admin option;
级联授权:SQL>grant all on databasename to username with grant option;
回收特权:SQL>revoke all on databasename from username;(有级联回收功能)
回收对象特权:SQL>revoke update on databasenem from username;
查看所有的被授予的对象特权:SQL>select * from sys.dba_tab_privs;
oracle的角色管理:
oracle也支持角色这个角色就好比windows下被授予一定权限的组将用户加入这个组就有了这个组的权限,在oracle中用户被授予了某个角色这个用户便有了这个角色所有的权限;
oracle下的五种角色:
dba connect resource exp_full_database imp_full_database
具有CONNECT角色的用户可以登录数据库,执行数据查询和操纵。即可以执行ALTER TABLE,CREATE VIEW,CREATE INDEX,DROP TABLE,DROP VIEW,DROP INDEX,GRANT,REVOKE,INSERT,SELECT,UPDATE,DELETE,AUDIT,NOAUDIT等操作;
RESOURCE角色可以创建表,即执行CREATE TABLE操作。创建表的用户将拥有对该表的所有权限。
DBA角色可以执行某些授权命令,创建表,对任何表的数据进行操纵。它涵盖了前两种角色,此外还可以执行一些管理操作,DBA角色拥有最高级别的权限。
例如DBA建立一用户U1后,欲
查看指定用户的表:
select * from dba_tables t where t.owner='username'
用alter语句修改表的属性:
修改表名:alter table old_table_name rename to new_table_name;
修改列名:alter table table_name rename column old_column_name to new_column_name;
修改列的数据类型:alter table table_name modify
查看用户权限:
查看其他用户对象的权限:SQL>select * from user_tab_privs;
查看本用户所拥有的系统权限:SQL>select * from sys_tab_privs;
查看当前用户的权限:SQL> select * from session_privs;
查看当前用户的对象权限:SQL>select * from DBA_tab_privs;
查看当前用户的角色:SQL>select * from DBA_role_privs;
查看当前用户的系统权限:SQL>select * from DBA_sys_privs;
用户属性修改:SQL> Alter User 用户名
Identified 口令
Default Tablespace tablespace
Temporary Tablespace tablespace
Profile profile
Quota integer/unlimited on tablespace;
禁用用户和激活用户:SQL> Alter user acc01 account lock; //禁用
SQL> Alter user acc01 account unlock; // 激活
创建用户外壳文件:SQL> create profile student limit // student为资源文件名
FAILED_LOGIN_ATTEMPTS 3 //指定锁定用户的登录失败次数
PASSWORD_LOCK_TIME 5 //指定用户被锁定天数
PASSWORD_LIFE_TIME 30 //指定口令可用天数
阅读(1021) | 评论(0) | 转发(0) |