oracle安装成功后,会默认生成三个用户:
sys用户:超级管理员,全县最高,他的角色是dba,,密码默认是change_on_install;
system用户:是系统管理员,权限也比较高,他的角色是dbaoper;密码默认是manager;
scott用户:普通用户,密码默认是tiger。
sys 与 system 的区别:
sys 有create database 的权限,而system 没有,其他相似。
1、创建用户:在oracle中创建一个新的用户使用create user 语句,一般要具有dba(数据库管理员)的权限才能使用
eg: create user xiaomign identified by m123;//create user 是关键词,xiaoming是用户名。
//identified by 是关键词,m123是密码
2、给用户修改密码:
(1)给自己修改密码的SQL语句:
password 用户名;//用户名也可以不用
(2)如果给别人修改密码则需要具有dba 权限的或者拥有 alter user 的系统权限,修改密码的SQL语句是:
alter user 用户名 identified by 新密码;
3、删除用户:一般以dba的身份去删除某个用户。自己删除自己是不允许的。删除用户的SQL语句如下:
drop user 用户名 [cascade];//带上cascade是指将该用户创建的表都删除
如果在删除用户时,注意如果要删除的用户已经创建了表,需要在删除的时候
带上一个参数:cascade。
4、权限的赋予和收回(grant、revoke)
新创建的用户:没有登录数据库的权限,需要为其指定相应的权限,
给一个用户赋权限使用命令 grant;收回权限使用命令revoke。
可以使用system或者sys给需要登录权限的用户赋权限。
(1)赋权限的SQL语句如下:
grant connect to xiaoming ;
然后授权成功就可以登录了:conn xiaoming/m123;
grant resource to xiaoming;//授权成功,就可以建表了
create table test(useId varchar2(30),username varchar2(30));
(2)希望小明去查询scott的emp表:先授权给xiaoming---再用xiaomign登录---查找,
grant select on emp to xiaoming;//system.sys.scott可以授权给xiaoming
conn xiaoming/m123;
select * from scott.emp;//提到方案的概念,找Scott下的emp表
(3)希望小明去修改scott的emp表:先授权给xiaoming--再用xiaomign登录--修改,
grant update on emp to xiaoming;//system.sys.scott可以授权给xiaoming
conn xiaoming/m123;
update * from scott.emp;//提到方案的概念,找Scott下的emp表
(4)希望小明去修改、删除、查询、添加scott的emp表:先授权给xiaoming--再用xiaomign登录--修改、删除、查询、添加,
grant all on emp to xiaoming;//system.sys.scott将emp这张表的所有权限授权给xiaoming
(5)scott希望收回xiaoming对emp的全部权限
conn scott/tiger;
revoke select on emp from xiaoming;//收回xiaoming 查询emp表的权限
select * from scott.emp;//会得到表或视图不存在
5、切换用户的SQL语句: conn system/manager;
6、对权限的维护
//希望xiaoming 用户可以去查询scott的emp表,并且希望xiaoming 能把这种权限给别人;
(1)如果是对象权限,直接在后边加上with grant option
grant select on emp to xiaoming with grant option;//设置xiaoming可以给别的用户赋权限
conn system/manager;//连上system用户
create user xiaohong identified by m123;//用system用户创建xiaohong用户
grant connect to xiaohong;//给xiaohong 赋登录数据库的权限
conn xiaoming/m123;//登录xiaoming 用户,尝试用xiaoming用户给xiaohong赋权限
grant select on scott.emp to xiaohong;//给xiaohong赋查询scott的emp表的权限
(2)如果是系统权限,直接在后边加上withadmin option
grant connect to xiaoming with admin option;//设置xiaoming可以给其他用户赋相同的系统权限
注意:如果scott把xiaoming对emp表的查询权限收回,那么xiaohong的权限还有吗?没有了,被回收了
7、使用profile管理用户口令
profile是口令限制,资源限制的命令集合,当建立数据库时,oracle会自动建立名称为default的
profile。当建立用户没有指定profile选项,那oracle就会将default分配给用户。
(1)锁定账户:指定该用户登录时最多可以输入密码的次数,也可指定用户账户锁定的时间,一般
用dba的身份去执行该命令。
例如:指定scott这个用户最多只能尝试3次登录,锁定时间为2天,
创建profile文件的SQL语句:
//创建配置文件
create profile lock-account limit falied_login_attempts3 password_lock_time 2;//红色部分是可以改变的
//将配置文件用在tea用户上
alter user tea profile lock_account;
(2)给用户解锁
alter user tea account unlock;//红色是可改变的,是指需要解锁的用户
(3)终止口令
为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要dba身份来操作。
例子:给前面创建的用户xiaoming创建一个profile文件,要求该用户每隔10天要修改自己的登录密码,宽限期为2天。
create profile myprofile limit password_life_time10 password_grace_time 2;
alter user xiaoming profilemyprofile;//把配置文件分配给用户
(4)口令历史
如果希望用户在修改密码的时候不能使用以前的密码,可使用口令历史,这样oracle就会将口令修改的信息存放到
数据字典中,这样当用户修改密码时,oracle就会新旧密码进行比较,如果发现一样,就会提示用户重新输入密码
1)建立profile
create profileprofile_history limit password_life_time 10 password_grace_time 2
password_reuse_time 10;
password_reuse_time是指 指定口令可以重用时间(即10天后就可以重用)
2)分配给某个用户
alter userxiaoming profile myprofile;
(5)删除profile
当不需要某个profile文件时,可以删除该文件,
drop profile password_history [cascade];
————————————————————————————————————————————————
1、oracle的权限分为两种:系统权限(140多种)和对象权限(25多种)。
系统权限:是指用户对数据库的相关权限;比如说建库、建表、建索引、建存储过程、登录数据库、修改密码;
对象权限:是指用户对其他用户的数据对象操作的权限。简单的划分有:select/insert/
/update/delete/all/create all......
2、数据对象:这个用户创建的表、触发器、视图、存储过程等数据库对象。
数据库中不只是有表,还有存储过程、触发器、视图、函数、过程、包、类型、角色、表空间等。
3、角色:事先定义一些角色(比如connect,dba,resourse),当新建一个数据库时,需要一些基本的授权,就是批量的将一些基本的基本权限给一个角色,就比如说一个人的职位是市长,就将一系列市长的权限给他。
角色分为自定义角色和预定义角色。如果把dba赋给用户,该用户就成了数据管理员。
4、方案:
5、oracle中可以有两张一样名字的表,因为oracle中是以用户为单位进行管理的,所以可以再不同用户下有相同名字的表。
6、