oracle查看所有用户和密码(查看oracle数据库用户)

概述今天主要分享一下两个shell脚本,主要是为了查看所有数据库用户及其表空间,统计某个指定用户的明细,下面一起来看看吧~数据库连接脚本usescriptsettdb.shforDBlogindetailsregistry#!/bin/

概述

今天主要分享一下两个shell脚本,主要是为了查看所有数据库用户及其表空间,统计某个指定用户的明细,下面一起来看看吧~


数据库连接脚本

use script settdb.sh for DB login details registry

#!/bin/bash
tmp_username=$SH_USERNAME
tmp_password=$SH_PASSWORD
tmp_db_sid=$SH_DB_SID

#check $1 and $2 should be mandatory from input
if [[ -z $1 ]] || [[ -z $2 ]]; then
echo \’***********************************************\’
echo \’WARNING :UserName And PassWord Is Needed!\’
echo \’***********************************************\’

exit
fi
if [[ -z $3 ]] && [[ -z $ORACLE_SID ]];then
echo \’***********************************************\’
echo \’WARNING :There is Instance can be used !\’
echo \’***********************************************\’
exit
fi

SH_USERNAME=`echo \”$1\”|tr \'[a-z]\’ \'[A-Z]\’`
SH_PASSWORD=$2
echo \’***********************************************\’

if [[ -z $3 ]]
then
SH_DB_SID=$ORACLE_SID
echo \’Using Default Instance :\’$ORACLE_SID
echo .
else
SH_DB_SID=`echo \”$3\”|tr \'[a-z]\’ \'[A-Z]\’`
fi

if [[ $SH_DB_SID = $tmp_db_sid ]] && [[ $SH_USERNAME = $tmp_username ]] && [[ $SH_PASSWORD = $tmp_password ]];then
echo \’Instance \’$SH_DB_SID \’has been connected\’
echo \’***********************************************\’
exit
fi

export SH_USERNAME=$SH_USERNAME
export SH_DB_SID=$SH_DB_SID
export SH_PASSWORD=$SH_PASSWORD
export DB_CONN_STR=$SH_USERNAME/$SH_PASSWORD
#echo $DB_CONN_STR
listfile=`pwd`/listdb
Num=`echo show user | $ORACLE_HOME/bin/sqlplus -s $DB_CONN_STR@$SH_DB_SID| grep -i \’USER \’ | wc -l`
if [ $Num -gt 0 ]
then
## ok – instance is up
echo \’Instance \’$SH_DB_SID \’has been connected\’
echo -e \’–\’ `date`\’– n–\’$SH_USERNAME@$SH_DB_SID \’has been connected –n\’ >> listdb
echo \’***********************************************\’
echo \’Initalize DB login details registry OK!\’
echo \’Now you can Execution script~\’
echo \’***********************************************\’
$SHELL

else
## inst is inaccessible
echo Instance: $SH_DB_SID Is Invalid Or UserName/PassWord Is Wrong
echo \’***********************************************\’
exit
fi
del_length=3
tmp_txt=$(sed -n \’$=\’ listdb)
echo \’***********************************************\’
echo \’********* \’ $SH_USERNAME\’@\’$SH_DB_SID \’**********\’
echo \’***********************************************\’
curr_len=`cat $listfile|wc -l`
if [ $curr_len -gt $del_length ]; then
echo \’ There Are Below Sessions Still Alive \’
echo \’***********************************************\’
fi
sed $((${tmp_txt}-${del_length}+1)),${tmp_txt}d $listfile | tee tmp_listfile
mv tmp_listfile $listfile

输出:./settdb.sh 用户名 用户密码

oracle查看所有用户和密码(查看oracle数据库用户)


showusers.sh

脚本内容如下:

#!/bin/bash
echo \”========================================查看所有数据库用户及其默认表空间=================================================\”
echo \”set pages 70 lines 99 feedback off
col DEFAULT_TABLESPACE head \’Default TBS\’ for a15 trunc
col TEMPORARY_TABLESPACE head \’TEMP TBS\’ for a15 trunc
col MB head \’Size (Mb)\’ for 999,999,999
col username format a30
set linesize 150

break on report
compute sum of MB on report

select
USERNAME,
DEFAULT_TABLESPACE,
TEMPORARY_TABLESPACE,
CREATED,
nvl(sum(seg.blocks*ts.blocksize)/1024/1024,0) MB
from
sys.ts$ ts,
sys.seg$ seg,
sys.user$ us,
dba_users du
where
us.name (+)= du.username
and seg.user# (+)= us.user#
and ts.ts# (+)= seg.ts#
group by USERNAME,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE,CREATED
order by MB desc,username,created
/
\” | sqlplus -s $DB_CONN_STR@$SH_DB_SID

oracle查看所有用户和密码(查看oracle数据库用户)

输出:./showusers.sh

oracle查看所有用户和密码(查看oracle数据库用户)


showusers.sh

脚本内容如下:

#!/bin/bash
echo \”========================================查看所有数据库用户$1具体信息=================================================\”
NAME=`echo $1|cut -d. -f1`
if [ -z \”$NAME\” ]
then
echo -e \”User must be provided: c\”; read NAME
fi

sqlplus -s $DB_CONN_STR@$SH_DB_SID <<EOF
clear buffer
set feed off
set verify off
set line 132
set pages 200

column bytes format 9999,999,999,999 head \”Bytes Used\”
column max_bytes format 9,999,999,999 head Quota
column default_tablespace format a20 head \”Default Tablespace\”
column tablespace_name for a25
column username format a25

prompt ******************************************************************************************************
prompt * General Details *
prompt ******************************************************************************************************
col profile format a10
col password_versions format a10
select username, default_tablespace, created ,profile, password_versions
from dba_users
where username=upper(\’${NAME}\’)
/

prompt.
prompt ******************************************************************************************************
prompt * Objects General Info *
prompt ******************************************************************************************************
select object_type,status,count(*) obj_count
from dba_objects
where owner=upper(\’$1\’) group by object_type,status order by obj_count desc
/
prompt.
prompt ******************************************************************************************************
prompt * Quotas *
prompt ******************************************************************************************************
select tablespace_name,
bytes,
decode( max_bytes,-1,\’UNLIMITED\’,max_bytes) max_bytes
from dba_ts_quotas where username=upper(\’${NAME}\’)
/
prompt.
prompt ******************************************************************************************************
prompt * Bytes Used
prompt ******************************************************************************************************
col tablespace_name for a15 trunc
col MB head \’Size (Mb)\’ for 999,999,999

break on report
compute sum of bytes on REPORT
/*
select
ts.tablespace_name tablespace_name,
nvl(sum(seg.blocks*ts.block_size)/1024/1024,0) MB
from
dba_tablespaces ts,
dba_segments seg,
dba_users us
where
— du.username=upper(\’${NAME}\’)
us.username=upper(\’${NAME}\’)
and seg.owner (+)= us.username
and ts.tablespace_name (+)= seg.TABLESPACE_NAME
group by ts.tablespace_name
order by ts.tablespace_name
*/

select
ts.name tablespace_name,
nvl(sum(seg.blocks*ts.blocksize)/1024/1024,0) MB
from
sys.ts$ ts,
sys.seg$ seg,
sys.user$ us,
dba_users du
where
du.username=upper(\’${NAME}\’)
and us.name (+)= du.username
and seg.user# (+)= us.user#
and ts.ts# (+)= seg.ts#
group by ts.name
order by ts.name
/
prompt .
prompt ******************************************************************************************************
prompt * Grants/Roles *
prompt ******************************************************************************************************
set feed off verify off line 132 pages 200

col owner format a15
break on owner
prompt ********* OWNER ROLE ***********
prompt ********************************
select d.owner,d.grantee role_name,r.PASSWORD_REQUIRED,s.admin_option,s.DEFAULT_ROLE
from dba_tab_privs d,dba_roles r,dba_role_privs s
where
d.grantee=r.role
and d.grantee=s.grantee(+)
and d.owner=nvl(upper(\’$1\’),\’ \’)
group by d.grantee,d.owner,r.password_required,s.admin_option,s.DEFAULT_ROLE
order by d.owner;
column grantee format a20
column granted_role format a35
column admin_option heading admin format a10

prompt .
prompt ********** GRANTED ROLE ********
prompt ********************************
select d.grantee role_name
from dba_tab_privs d
where owner=upper(\’$1\’)
group by d.grantee
union
select granted_role
from dba_role_privs
where grantee=upper(\’$1\’);
prompt .
prompt ******************************************************************************************************
prompt * Sys privileges *
prompt ******************************************************************************************************
set feed off verify off line 132 pages 200
column privilege format a25
column admin_option heading admin format a8

select privilege,
admin_option
from dba_sys_privs where grantee = upper(\’${NAME}\’)
/
!echo \”******************************************************************************************************\”
EOF
exit

输出:./showusers.sh 用户名

oracle查看所有用户和密码(查看oracle数据库用户)

oracle查看所有用户和密码(查看oracle数据库用户)

oracle查看所有用户和密码(查看oracle数据库用户)


大家有什么需要统计的可以在下方留言,后面我也会整理相关脚本,感兴趣的朋友可以关注下

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/24495.html

(0)
nan
上一篇 2021-09-12
下一篇 2021-09-12

相关推荐

  • linux怎么查看nas挂载情况

    在Linux系统中,可以使用以下命令来查看NAS挂载情况:使用df -h命令来显示所有已挂载的文件系统和其使用情况。在输出中可以看到NAS设备是否已经成功挂载。使用mount命令来显示当前系统中所有已经挂载的文件系统,包括NAS设备。使用lsblk命令来显示系统中所有的块设备以及它们的挂载情况。查看/etc/fstab文件,该文件包含了系统启动时自动挂载的配置信息,可以查看是否已经配置了NAS设备

    2024-04-22
    0
  • c语言中sizeof函数怎么使用

    sizeof 函数是一个 C 语言中的操作符,用来返回一个数据类型的大小,单位为字节。它的语法如下:sizeof(data_type)其中 data_type 可以是任何合法的数据类型,如基本数据类型、结构体、指针等。例如,如果要获取 int 类型的大小,可以这样写:int size = sizeof(int);另外,sizeof 函数还可以用来获取数组的大小,例如:int arr[] =

    2024-02-19
    0
  • redis连接失败的原因有哪些

    Redis服务器未启动:连接Redis服务器之前需要先确保Redis服务器已经成功启动。Redis服务器端口错误:默认情况下,Redis服务器监听端口为6379,如果配置文件中修改了端口号,则需要使用修改后的端口号进行连接。网络连接问题:Redis服务器可能存在网络连接问题,例如网络故障、防火墙阻止连接等。认证失败:如果Redis服务器设置了密码认证,连接时需要提供正确的认证密码。最大连接数限制:

    2024-02-01
    0
  • 「粉丝通婚纱摄影怎么投」粉色婚纱摄影

    粉丝通婚纱摄影怎么投,粉色婚纱摄影 内容导航: 微博粉丝通广告是怎么投放的 婚纱摄影如何用短信招揽业务 来个人天通苑婚纱摄影天通苑性价比最高的婚纱摄影 新浪粉丝通是什么呢 一、微博…

    2022-05-20
    0
  • CentOS7中怎么进行远程登录

    在CentOS7中进行远程登录通常使用SSH(Secure Shell)连接。以下是在CentOS7中进行远程登录的步骤:打开终端并输入以下命令以安装OpenSSH服务器:sudo yum install openssh-server启动SSH服务并设置开机自启动:sudo systemctl start sshdsudo systemctl enable sshd查看SSH服务状态以确保它已经

    2024-03-05
    0
  • 日本服务器访问速度变慢的原因有哪些

    网络拥堵:当很多用户同时访问同一个服务器时,网络流量会增加,导致服务器的响应速度变慢。服务器负载过高:服务器处理的请求过多,超出了其负载范围,导致响应速度变慢。网络延迟:网络传输数据的速度受到距离、网络设备等因素的影响,如果网络延迟较高,就会导致访问速度变慢。DNS解析问题:浏览器需要将域名解析成对应的IP地址才能访问服务器,如果DNS解析出现问题,就会影响访问速度。服务器故障:服务器硬件故障、软

    2024-03-30
    0

发表回复

登录后才能评论