Oracle笔记之用户管理
1. 创建用户
创建用户使用create user语句,需要DBA权限:
CREATE USER tom IDENTIFIED BY mot;
2. 更改用户密码
修改别人的密码需要DBA权限,或者alter user权限:
ALTER USER tom IDENTIFIED BY newpasswd;
或者修改别人的密码带上用户名:
SQL> PASSWORD tom;
更改 tom 的口令
新口令: ******
重新键入新口令: ******
口令已更改
如果是更改自己的密码的话可以省略掉用户名,注意更改自己密码的时候需要输入旧密码来证明我是我自己:
SQL> PASSWORD
更改 SYS 的口令
旧口令: ******
新口令: ******
重新键入新口令: ******
口令已更改
修改密码的语法跟Linux下修改密码的语法类似,猜想是因为在很久之前大家都是用Linux的,这么设计可能是为了兼容性吧,尽量不去改变用户习惯。
4. 删除用户
删除用户也需要DBA的权限,自己删除自己是不允许的,不能自杀...
DROP USER tom;
如果需要在删除用户的时候删除此用户创建的所有表,那么在用户名后面加上cascade:
DROP USER tom CASCADE;
需要注意如果此用户已经登录到系统中的话是暂时不能删除的,所以不能自杀。
4. 更改用户权限
创建的新用户是没有任何权限的,需要为其指定权限,不指定权限的话连系统都登录不上去。
为一个用户赋予权限使用grant,回收权限使用revoke。
为创建的用户Tom赋予权限使其可以登录:
GRANT connect TO tom;
上面的命令到底是什么意思呢?这个connect实际上是一个预定义角色,上面表示我们把一个叫做connect的角色赋予给了用户tom。
Oracle中权限分为系统权限和对象权限。
系统权限:用户对数据库的相关权限,大概有一百四十多种。
对象权限:用户对其它用户的数据对象操作的权限,大概有二十多种。
因为权限实在太多了,一个用户的权限可能非常非常的多,这个时候我们管理起来就会很崩溃,所以就引入了一个新概念叫做角色,给一个角色初始赋予很多权限,让一个角色表示一个权限的集合,这样子我们再对权限进行管理的时候就多了一个选择,可以将一个角色直接授予一个用户,当用户拥有某种角色的时候就拥有这个角色表示的所有权限。
角色又分为两种,一种是预定义角色,一种是自定义角色。
系统中初始化了一些预定义角色,但是也可能仍然满足不了我们的需求,这个时候就让我们可以自定义角色,来自定义权限集合。
GRANT connect TO tom;
系统权限中有一种叫做create session,拥有这个权限才可以登录到系统,而connect角色包含了create session权限。
特殊的角色:
DBA:可以让一个普通用户变成一个DBA,DBA大概相当于MySQL下的root。
RESOURCE:可以让某个用户建表等一堆乱七八糟的创建(create)相关的权限。
对象权限都是啥:
select
insert
update
delete
all
create index
...
授予一个用户创建表的权限:
GRANT resource TO tom;
希望一个用户Tom可以去查看其它用户Scott创建的表emp,让用户Scott授权给用户Tom相应的对象权限:
GRANT select on emp TO tom;
登录Tom,查询Scott下的emp表:
SELECT * FROM scott.emp;
注意需要使用用户名进行引用,联想到MySQL中使用databaseName.tableName可以跨数据库查询,将一个用户当做一个数据库,引用的时候使用username.tableName进行引用,这样的话使用用户名进行分割,不同的用户名下是可以有相同表名的表的。
上面的如果需要Tom能够把赋予的这个权限继续传递,比如传递给Sam,可以在授权的时候在后面加上with grant option:
GRANT select on emp TO tom WITH GRANT OPTION;
Tom现在也可以把这个权限授予给别人了,而且还可以把权限最大化的传递,让别人也拥有授权权限,使用sys创建一个用户:
CREATE USER sam IDENTIFIED BY toor;
然后让Tom把这个权限授予给Sam:
GRANT select on scott.emp TO sam WITH GRANT OPTION;
注意如果这个时候Scott把赋予Tom的权限收回了的话,Tom授予给其他人的权限仍然是存在的,大概就相当于赵立春书记上任的时候提拔了好些干部,如果他倒台了这些干部也都全给一撸到底回家种地,这样子就没办法管理了,这里不实行连坐。
收回权限的时候只是将grant改为revoke,将to改为from:
REVOKE select on emp FROM tom;
5. 使用profile管理用户口令
profile是口令限制、资源限制的命令,当建立数据库的时候Oracle自动建立名为default的profile,当创建用户的时候没有指定profile的话,那么就意味着使用default的profile。
创建和管理profile需要DBA权限。
创建一个profile,名称为lock_account,用来限制登录时的最大失败尝试次数,锁定的时间单位为天:
CREATE PROFILE lock_account
LIMIT
failed_login_attempts 3
password_lock_time 2;
让Tom使用这个profile:
ALTER USER tom PROFILE lock_account;
当尝试次数超过了之后,账户又会被锁定了,再登录的时候就会提示,即使密码对了也登不上去了:
ERROR:
ORA-28000: the account is locked
账户被锁定的时候可以让DBA来解锁账户:
ALTER USER tom ACCOUNT UNLOCK;
某个用户的账户有异常行为需要冻结掉,DBA手动锁定账户:
ALTER USER scott ACCOUNT LOCK;
限制最大尝试次数可以在一定程度上提高账户的安全性。
为了提高安全性管理员通常会做的一个限制就是限定某个用户的密码每隔多长时间就修改一次,相当于一种"动态密码"了,创建一个profile限定用户必须周期性的改密码,password_life_time表示每隔多少天必须修改密码,password_grace_time表示到期后宽限几天:
CREATE PROFILE circle_passwd
LIMIT
password_life_time 10
password_grace_time 2;
上面的策略表示每隔12天就修改一次密码,在第十一天的时候就开始提醒,一直提醒两天,如果一直不修改密码的话在第十三天账户将被锁定。
我上一份工作的公司配的笔记本每隔几个月就要修改一次密码,因为我们都习惯一直用同一个熟悉的东西,不大想改变习惯嘛,所以我机智的想,如果我在到期的时候将密码随便修改一下再立刻修改回来,不仍然可以使用之前的密码而不被影响吗...哈哈哈,当我机智的这么做的时候我发现我还是太年轻...修改密码的时候有一个策略可以不允许用户使用历史密码,即之后再使用的密码不能与之前的重复,在Oracle的profile也有这个选项,使用password_reuse_time指定口令的可重用时间,比如:
CREATE PROFILE circle_passwd_history
LIMIT
password_life_time 10
password_grace_time 2
password_reuse_time 2;
删除profile:
DROP PROFILE circle_passwd_history;
当profile被删除的时候使用到这个profile的用户也不被约束了。
.
Oracle笔记之用户管理的更多相关文章
- Oracle DB 执行用户管理的备份和恢复
• 说明用户管理的备份和恢复与服务器管理的备份和恢复 之间的差异 • 执行用户管理的数据库完全恢复 • 执行用户管理的数据库不完全恢复 备份和恢复的使用类型 数据库备份和恢复的类型包括: • 用户管理 ...
- oracle工具 sqlplus 用户管理
可以通过system用户对普通用户解锁.alter user scott account unlock; 工具:1/ sqlplusw sqlplus 自带.调用oracle安装目录下bin目录下的e ...
- Linux实战教学笔记14:用户管理初级(下)
第十四节 用户管理初级(下) 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,用户查询相关命令id,finger,users,w,who,last,lastlog,gr ...
- oracle数据库之用户管理
转载 Oracle创建用户.角色.授权.建表 一.oracle数据库的权限系统分为系统权限与对象权限: 系统权限( database system privilege )可以让用户执行特定的命令集 ...
- Linux实战教学笔记14:用户管理初级(上)
第十四节 用户管理初级(上) 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,账号管理 1.1 管理用户命令汇总 命令 注释说明(特殊颜色的必须掌握) useradd增 ...
- Linux实战教学笔记15:用户管理初级(下)
第十四节 用户管理初级(下) 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,用户查询相关命令id,finger,users,w,who,last,lastlog,gr ...
- linux笔记:用户管理命令和用户组管理命令
用户管理命令 命令名称:useradd功能:添加用户(添加完后不能立即使用,必须用passwd修改用户密码后才能使用)用法:useradd [选项] 用户名选项参数:-u 手工指定用户的UID-d 手 ...
- 吴裕雄--天生自然ORACLE数据库学习笔记:用户管理与权限分配
create user mr identified by mrsoft default tablespace users temporary tablespace temp; create user ...
- Oracle基础和用户管理
1.数据库的使用: 项目的规模:负载量(用户)有多大? 成本: 安全性: (小型数据库)access.forbase 负载小 :100人以内,比如留言板,信息管理系统. 成本:千元以内. 安全性要 ...
随机推荐
- (六)Jmeter重要组件的执行顺序及作用域
一.Jmeter重要组件: 1)配置元件---Config Element: 用于初始化默认值和变量,以便后续采样器使用.配置元件大其作用域的初始阶段处理,配置元件仅对其所在的测试树分支有效,如,在同 ...
- [转帖]Linux 的UTC 和 GMT
1.问题 对于装有Windows和Linux系统的机器,进入Windows显示的时间和Linux不一致,Linux中的时间比Windows提前8个小时. 2.解决方法 修改/etc/default/r ...
- Oracle忘记密码如何重置
昨天安装Oracle11g R2的时候给scott用户设置密码,当时没有显示而且还只以输入一次,可能密码输入错误,结果今天用scott用户登录果然密码不对,还好sys和system用户都正常,就进去给 ...
- 某客的《微信小程序》从基础到实战视频教程
第 1 部分 微信小程序从基础到实战课程概要 第 1 节 微信小程序从基础到实战课程概要 1.1微信小程序从基础到实战课程概要 第 2 部分 初识微信小程序 第 1 节 微信小程序简 ...
- 【Asp.Net Core】在Visual Studio 2017中使用Asp.Net Core构建Angular4应用程序
前言 Visual Studio 2017已经发布了很久了.做为集成了Asp.Net Core 1.1的地表最强IDE工具,越来越受.NET系的开发人员追捧. 随着Google Angular4的发布 ...
- DRM Study
1.DRM是什么? DRM,英文全称Digital Rights Management, 可以翻译为:数字版权管理.指的是出版者用来控制被保护对象的使用权的一些技术,这些技术保护的有数字化内容(例如: ...
- 【入门向】使用 MetaHook Plus 绘制 HUD
MetaHook Plus 是一个GoldSrc引擎(就是的Half-Life.CS1.6的引擎)的客户端插件平台,它可以加载我们自己开发的DLL插件. 首先你需要安装一个 Visual Studio ...
- [十七]SpringBoot 之 使用自定义的properties
Springboot使用application.properties默认了很多配置.但需要自己添加一些配置的时候,我们应该怎么做呢. 如果继续在application.properties中添加 如: ...
- 【刷题】LOJ 6038 「雅礼集训 2017 Day5」远行
题目描述 Miranda 生活的城市有 \(N\) 个小镇,一开始小镇间没有任何道路连接.随着经济发现,小镇之间陆续建起了一些双向的道路但是由于经济不太发达,在建设过程中,会保证对于任意两个小镇,最多 ...
- 洛谷 P3241 [HNOI2015]开店 解题报告
P3241 [HNOI2015]开店 题目描述 风见幽香有一个好朋友叫八云紫,她们经常一起看星星看月亮从诗词歌赋谈到人生哲学.最近她们灵机一动,打算在幻想乡开一家小店来做生意赚点钱. 这样的想法当然非 ...