我的Oracle 9i学习日志(21)-- 用户管理

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

1
验证机制:
可通过以下方式之一对需要访问数据库的用户进行验证:
•  数据字典
•  操作系统
•  网络
数据库方案(schema)
方案是与某个用户关联的对象(包括:表、触发器、约束、索引、视图、序列、存储程序单元、同义词、用户定义的数据类型、数据库链接等)的特定集合。创建数据库用户时,就会相应地为该用户创建同名的方案。用户只能与同名的方案关联,因此用户名和方案经常互用。
Checklist for Creating Users
确定用户需要在其中存储对象的表空间。
确定每个表空间的限额。
指定一个缺省表空间与临时表空间。
创建用户。
向用户授予权限与角色。
创建新用户:数据库验证
语法:
使用以下命令创建新用户:
CREATE USER user
IDENTIFIED {BY password | EXTERNALLY}
[ DEFAULT TABLESPACE tablespace ]
[ TEMPORARY TABLESPACE tablespace ]
[ QUOTA {integer [K | M ] | UNLIMITED } ON tablespace
[ QUOTA {integer [K | M ] | UNLIMITED } ON tablespace
]...]
[ PASSWORD EXPIRE ]
[ ACCOUNT { LOCK | UNLOCK }]
[ PROFILE { profile | DEFAULT }]
其中:
User :是用户名
BY password :指定用户在登录时需通过数据库验证,还必须提供口令
EXTERNALLY :指定用户需通过操作系统验证
GLOBALLY AS :指定对用户进行全局验证
DEFAULT  或TEMPORARY TABLESPACE:为用户标识缺省或临时表空间
QUOTA :定义表空间中允许用户拥有对象所具有的最大空间(可将限额定义为整数字节或千字节/兆字节。关键字UNLIMITED 用于指定用户拥有的对象可使用表空间内的全部可用空间。缺省情况下,用户在任何表空间上都没有限额。)
PASSWORD EXPIRE :强制用户在使用SQL*Plus 登录到数据库时重置口令(该选项仅在用户通过数据库进行验证时有效)。
ACCOUNT LOCK/UNLOCK :可用于显式锁定或解除锁定用户帐户(UNLOCK 为缺省设置)
PROFILE :用于控制资源使用和指定用户的口令控制机制。
口令验证方法是必需的。如果指定了口令,则Oracle 服务器将在数据字典中对其进行维护。用户通过服务器进行验证时,可使用Oracle 服务器提供的口令控制机制。
操作系统验证:
CREATE USER  命令的 IDENTIFIED EXTERNALLY  子句指定用户必须通过操作系统进行验证。当用户直接登录到运行 Oracle  服务器的计算机上时,该选项通常很有用。
操作系统验证的用户名:
OS_AUTHENT_PREFIX  初始化参数用来指定操作系统验证的用户名的格式。该参数的缺省值为 OPS$ ,以便与 Oracle  服务器的早期版本向后兼容。要将前缀设置为 NULL  值,该初始化参数指定为: OS_AUTHENT_PREFIX = ““
例:
CREATE USER OPS$aaron
IDENTIFIED EXTERNALLY
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE temp
QUOTA 15m ON USERS
PASSWORD EXPIRE;
此处指定允许操作系统用户 aaron  无需经过 Oracle  服务器验证即可访问数据库。因此,若要使用 SQL*Plus  登录到系统,则 UNIX  用户 aaron  必须从该操作系统输入下列命令:
$ sqlplus /
注:
•  使用 OS_AUTHENT_PREFIX=OPS$  时:提供了灵活的用户验证方式,既可通过操作系统进行验证,也可通过 Oracle  服务器进行验证。在这种情况下, DBA  可通过输入下列格式的命令创建用户:
CREATE USER ops$user
IDENTIFIED BY password ...
•  登录到运行 Oracle  服务器的计算机上的用户无需提供口令。如果用户从远程客户机连接,则可提供口令以实现连接。
•  设置另一个初始化参数 REMOTE_OS_AUTHENT=TRUE ,指定用户可通过远程操作系统进行验证。缺省值 FALSE  表示用户只能通过运行 Oracle  服务器的计算机进行验证。应小心使用该参数,因为可能存在安全隐患。
•  如果数据库中的某些用户通过操作系统进行验证,则更改 OS_AUTHENT_PREFIX  可防止这些用户登录到数据库。
更改用户的表空间限额
使用下列命令修改表空间限额或重新分配表空间:
ALTER USER user
[ DEFAULT TABLESPACE tablespace]
[ TEMPORARY TABLESPACE tablespace]
[ QUOTA {integer [K | M] | UNLIMITED } ON tablespace
[ QUOTA {integer [K | M] | UNLIMITED } ON tablespace ]
...]
如果分配的限额为 0 ,用户拥有的对象仍保留在撤消的表空间内,但不能给它们分配新的空间。例如,如果表空间 USERS  内有一个 10 MB  的表,若将该表空间的限额改为 0 ,则不能再为该表分配新区。任何未更改的选项保持不变。
注:对于 UNLIMITED TABLESPACE  权限应格外注意,因为它优先于限额设置。
删除用户
DROP USER user [CASCADE]
原则:
•  在删除用户前, CASCADE  选项将删除方案中的所有对象。如果方案中包含任何对象,则必须指定该选项。
•  不能删除当前与 Oracle  服务器连接的用户。
获取信息;
 DBA_USERS
 DBA_TS_QUOTAS
 
关于普通用户无法使用 sqlplus 的问题(求解决):
环境 RedHat5.4 Oracle9.0.2.4
 
$ id
uid=500(lty) gid=500(lty) groups=500(lty)
 
$ env|grep ORACLE
ORACLE_SID=lty
ORACLE_BASE=/u01
ORACLE_HOME=/u01/oracle
export PATH=$PATH:/u01/oracle/bin
 
 $ sqlplus /                                      #lty 为系统认证用户。
-bash: sqlplus: command not found
 
$ /u01/oracle/bin/sqlplus /
-bash: /u01/oracle/bin/sqlplus: Permission denied
 
查询文件权限:
$ ls -l sqlplus
-rwxr-x--x 1 oracle oinstall 663004 Feb 17 22:43 sqlplus
 
请问在不改变用户主属的条件下我该如何解决普通用户不能执行 sqlplus 的问题?
改变主属后问题依旧
$ id
uid=500(lty) gid=501(oinstall) groups=501(oinstall),502(dba)
 
$ export ORACLE_HOME=/u01/oracle ORACLE_SID=lty PATH=$PATH:/u01/oracle/bin
 
$ /u01/oracle/bin/sqlplus /
-bash: /u01/oracle/bin/sqlplus: Permission denied
 
$ slqplus /
-bash: slqplus: command not found

问题已解决,谢谢关注!

解决方法:chmod 755 oracle










本文转自 d185740815 51CTO博客,原文链接:http://blog.51cto.com/luotaoyang/294898,如需转载请自行联系原作者
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
21天前
|
Oracle 关系型数据库 网络安全
Oracle 19c 安装教程学习
Oracle 19c 安装教程学习
45 2
|
24天前
|
Arthas 监控 Java
JVM知识体系学习七:了解JVM常用命令行参数、GC日志详解、调优三大方面(JVM规划和预调优、优化JVM环境、JVM运行出现的各种问题)、Arthas
这篇文章全面介绍了JVM的命令行参数、GC日志分析以及性能调优的各个方面,包括监控工具使用和实际案例分析。
38 3
|
30天前
|
存储 Prometheus NoSQL
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
22 3
|
1月前
|
数据采集 监控 Java
SpringBoot日志全方位超详细手把手教程,零基础可学习 日志如何配置及SLF4J的使用......
本文是关于SpringBoot日志的详细教程,涵盖日志的定义、用途、SLF4J框架的使用、日志级别、持久化、文件分割及格式配置等内容。
83 0
SpringBoot日志全方位超详细手把手教程,零基础可学习 日志如何配置及SLF4J的使用......
|
2月前
|
Kubernetes API Docker
跟着iLogtail学习容器运行时与K8s下日志采集方案
iLogtail 作为开源可观测数据采集器,对 Kubernetes 环境下日志采集有着非常好的支持,本文跟随 iLogtail 的脚步,了解容器运行时与 K8s 下日志数据采集原理。
|
24天前
|
Python
log日志学习
【10月更文挑战第9天】 python处理log打印模块log的使用和介绍
25 0
|
3月前
|
JSON 中间件 Go
go语言后端开发学习(四) —— 在go项目中使用Zap日志库
本文详细介绍了如何在Go项目中集成并配置Zap日志库。首先通过`go get -u go.uber.org/zap`命令安装Zap,接着展示了`Logger`与`Sugared Logger`两种日志记录器的基本用法。随后深入探讨了Zap的高级配置,包括如何将日志输出至文件、调整时间格式、记录调用者信息以及日志分割等。最后,文章演示了如何在gin框架中集成Zap,通过自定义中间件实现了日志记录和异常恢复功能。通过这些步骤,读者可以掌握Zap在实际项目中的应用与定制方法
125 1
go语言后端开发学习(四) —— 在go项目中使用Zap日志库
|
3月前
|
SQL Oracle 关系型数据库
"揭秘!一键解锁Oracle日志清理魔法,让海量归档日志无处遁形,守护数据库健康,告别磁盘空间告急噩梦!"
【8月更文挑战第9天】随着Oracle数据库在企业应用中的普及,归档日志管理对保持数据库健康至关重要。归档日志记录所有更改,对数据恢复极为重要,但也可能迅速占用大量磁盘空间影响性能。利用Oracle提供的RMAN工具,可通过编写Shell脚本来自动清理归档日志。脚本包括设置环境变量、连接数据库、检查和删除指定时间前的日志,并记录执行情况。通过Cron作业定时运行脚本,可有效管理日志文件,确保数据库稳定运行。
92 7
|
3月前
|
Java 数据库连接 数据库
后端框架的学习----mybatis框架(6、日志)
这篇文章介绍了如何在MyBatis框架中使用日志功能,包括配置MyBatis的日志实现、使用log4j作为日志工具,以及如何通过配置文件控制日志级别和输出格式。
|
3月前
|
SQL 监控 Oracle
Oracle数据误删不用怕,跟我来学日志挖掘
Oracle数据误删不用怕,跟我来学日志挖掘
37 0

推荐镜像

更多