前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OracleDBA之用户管理

OracleDBA之用户管理

作者头像
lizelu
发布2018-01-12 10:48:22
6270
发布2018-01-12 10:48:22
举报
文章被收录于专栏:青玉伏案青玉伏案

再分享一下Oracle中对用户的管理,以下这些东西是我的麦库上存的当时学Oracle的学习笔记今天拿出来和大家分享一下,转载请注明出处,下面用的Oracle的版本是10g,用的时WinServer2003的操作系统,可能有些命令和Oracle11g的有所不同,但大部分是一样的,接下来还会陆续的分享一下Oracle中对数据库的管理,对表的管理,还有Oracle中的存储过程和PL/SQL编程。用到的Oracle的管理工具是PL/SQL Developerl和SQL PLUS,欢迎大家批评指正。

1.用户的创建

  在Oracle数据库创建数据库用create user语句来实现,一般是具有dba的权限才能实现。   demo:

代码语言:javascript
复制
sql> create user UserName identified by UserPassWord;
sql>用户已创建。(在创建用户时用户密码必须以字母开头,否则无法创建用户)

2.修改密码   给用户修改密码:   如果给自己修改密码可以用

代码语言:javascript
复制
1 sql>password 即可;

  给别人修改密码必须有数据库dba权限或者系统的alter user权限

代码语言:javascript
复制
1  sql> alter user 用户名 identified by 新密码;

3.删除用户:   需要有数据库dba权限或者drop user 权限

代码语言:javascript
复制
1  demo: sql> drop user 用户名 【cascade】 cascade在删除用户的同时把用户所创建的表也一并删除;

4.赋权限

  创建的用户是没有任何权限的,需要给他赋予一些操作数据库的一一些权限给用户赋权限用关键字grant, 回收用户的权限用revoke

  给用户赋予连接数据库的权限:

代码语言:javascript
复制
sql>grant connect to 用户名;

  系统权限的传递性设置:

代码语言:javascript
复制
sql>grant connect to 用户名 with admin option;

  oracle数据库中的权限包括系统权限和对象权限       系统权限:用户对数据库的相关权限;如:创建数据库,删除数据库,创建和删除用户;       对象权限:用户对其数据对象的操作权限,数据对象如表,视图,函数,过程等: 5.oracle 中的角色:    角色的概念:角色是多种权限的组合包括 预定义角色和自定义角色,如connect权限,dba权限,resource权限等; connect权限是赋予用户连接数据库的权限,dab权限是数据库的最高权限,resource 权限是赋予用户使用数据库存储资源的权限即创建和操作表的权限;    对象的权限:select, insert, update, delete, all(包含上述的四个), create index ……常用的是对表的操作赋予用户对象权限的语法如下:

代码语言:javascript
复制
1 grant 权限 on 表名 to 用户名; demo: grant select on emp to ludashi;

  把scott下的表的select对象权限赋予li;

代码语言:javascript
复制
sql>grant select on emp to li;
sql>conn li/li;
sql>select * from scott.emp; --查询scott下的emp表,必须为scott.emp才可以查询成功。这涉及到“方案”的概念。

  如果是dba用户,把用户scott的下的emp表的select对象权限赋给li用户:

代码语言:javascript
复制
sql>grant select on scott.emp to li;(方案名.表名);

  设置用户权限的可传递性:

代码语言:javascript
复制
sql>grant select on emp to li with grant option; --li用户可以把别人赋给他的权限在赋给其他人;

6.回收用户权限:   revoke 权限 on 表名 from 用户名;   scott用户撤回他赋给li用户的select权限:

代码语言:javascript
复制
1 revoke select on emp from li;

  sys用户撤回scott用户把自己的emp表的select权限赋给li;

代码语言:javascript
复制
revoke select on scott.emp from li;

  desc命令: desc 表名;显示表结构;

7.Oracle权限的回收传递问题:   系统角色的回收问题(如connect,resources等):     sys用户:--把连接数据库的角色赋给test1,并设置为可传递性;

代码语言:javascript
复制
sql>grant connect to test1 with admin option;

    test1用户:--test1把连接数据库的权限传递给test2

代码语言:javascript
复制
sql>grant connect to test2;

  test1和test2都可以连接数据库,即test1把连接数据库的权限传递给了test2;   sys用户:--sys用户回收test1连接数据库的权限

代码语言:javascript
复制
sql>revoke connect from test1;

把test1用户的权限回收后test1,无法连接数据库。

可对于系统角色来说回收test1角色的同时,传递给test2的角色仍然存在;

8.权限的回收问题:   sys用户:--sys用户把方案scott下的emp表的select权限赋给test1,并设置为可传递性;

代码语言:javascript
复制
sql>grant select on scott.emp to test1 with grant option;

  test1用户:把对emp表的select的权限赋给test2;

代码语言:javascript
复制
sql>grant select on scott.emp to test2;

  sys用户:--回收test1的select的权限

代码语言:javascript
复制
 sql>revoke select on scott.emp from test1;

在回收test1的select权限的同时也把test2的权限回收了;

9.profile用户权限管理:   Oracle设定用户登录次数,登录失败几次后自动locked用户;

代码语言:javascript
复制
sys>用户:create profile创建配置文件;设定密码错误三次后密码被锁两天的配置文件, 名字为fileName;
sql> create profile fileName limit failed_login_attempts 3 password_lock_time 2;
sql>alter user userName profile fileName;

  用户解锁:

代码语言:javascript
复制
sql> alter user userName account unlock;

  Oracle 设定用户密码的过期时间,即密码的有效期;   sys用户:创建配置文件fileName 设置密码的过期时间是10天,宽限日是两天;

代码语言:javascript
复制
sql> create profile fileName limit password_life_time 10 password_grace_time 2;
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014-07-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档