1.创建新的用户;
成都创新互联是一家专业提供淮上企业网站建设,专注与成都网站设计、网站制作、H5开发、小程序制作等业务。10年已为淮上众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
2.对已有用户进行相关属性的修改操作。
部分属性的修改涉及到生产环境的要申请停业,避免业务交易无法正常进行:
1.创建新用户对原有的业务无影响,风险级别低,但要考虑新用户导入的数据量,避免数据表空间爆满,TEMP空间与归档空间不足。
2.修改用户密码:
1)会导致继续使用之前密码连接数据库的应用出现连接故障,如果该应用有重连机制,超过尝试次数会导致用户被锁,风险级别高。
2)会导致其他库上未进行修改的 DBLINK,无法远程连接到本数据库,风险级别 高。
3.修改用户默认表空间,不影响现有的业务,风险级别低。
4.修改用户默认临时表空间,不影响现有的业务,风险级别低。
5.修改用户 profile,会影响用户会话的连接配额,如连接会话数、密码过期设定、 空闲时间、连接时间等,风险级别中。
6.修改账户状态,会影响会话连接数据库,风险级别高。
7.修改密码口令过期,会影响会话连接数据库,风险级别高。
8.修改用户表空间配额,会影响用户在表空间中的使用额度,风险级别中。
9.修改用户权限,会影响会话的执行权限,风险级别中。
不管是生产环境还是测试环境,备份永远是第一步操作,在评估时也要考虑是否有回退的可能,不要拿开弓没有回头箭当挡箭牌:
1.修改密码时,提前保存密文密码,同时找出到修改库的 DBLINK 也要修改。
2.修改用户属性时,提前保存原来的用户属性信息。
3.同研发确认用户需求,确保不影响业务。
4.安排变更窗口,停止应用。
1.创建新用户
2.用户属性修改
3.修改密码 修改用户密码:
4.修改远程库 DBLINK 的用户密码:
5.修改默认表空间及临时表空间
6.修改 profile
7.修改账户状态(锁定,解锁)
8.修改口令过期
9.修改表空间配额
10.权限,角色授予与回收
1.重新登陆进行账户验证新密码及账户锁定状态是否符合预期。
2.在远程库进行 DBLINK 连接验证是否正常。
3.检查用户账号状态是否正常
4.检查具体的权限是否符合要求
5.应用启动后,日志是否正常,最后观察业务是否正常进行
1.删除新用户
2.修改回用户旧密码:
3.修改远程库 DBLINK 的用户密码:
4.修改默认表空间及临时表空间
5.修改 profile配置
6.修改账户状态(锁定,解锁)
7.修改表空间配额
8.权限,角色授予与回收
1.用户旧密码登录验证是否正常
2.DBLINK连接是否正常
3.查看用户的默认表空间与临时表空间是否与最初状态一致
4.profile配置是否与最初状态一致
5.账户的状态是否与最初状态一致
6.表空间配置是否与最初状态一致
7.权限等是否与最初状态一致。
备注:回退方案的验证最重要的就是第一个步骤的备份与信息记录。这样才能验证回退方案是否达到预期。
在以SYSDBA身份登陆时可以修改其他用户的密码,比如:用户已更改。在以SYSDBA身份登陆时可以修改其他用户的密码,比如:用户已更改。一般来说,oracle数据库安装后,里面有很多个默认账号和密码,比较常用的是:账号:scott
密码:tiger
账号:system
密码:manager
账号:sys
密码:任意字符。当我们想创建一个账号时,可以使用sys登录sysdba后,创建用户(需要授权),代码如下我们一般使用的是用scott登录sysdba,这时候有可能出现账户未解锁的状态,这时候可以用来解锁账户。解锁之后可能会要求你改密码:可以用
改用户名的用处
至于改名字的用处嘛,在这样一种情景下非常有用.假如某个公司给每个员工一个账户,用户名就是你的英文名.当某个员工arwen要离职了,那就要删除掉用户arwen了.但是我们知道oracle中用户与此用户下面创建的对象是完全绑定到一起的,而不像sql
server中表等对象是可以和用户完全分开.这样的话你一删掉用户arwen那下面的数据全没了.假如我们需要那些数据
咋整
呢,最容易想到的是把所有数据先导出,然后再导入到某个用户下面.但这样比较麻烦.所以如果能改名字就更好点了.
接着用上面的例子.假如又来了新员工,weiwenhp.他是接arwen的班的.所以他很需要用户arwen下面的数据.此时就把用户arwen改成用户weiwenhp.我们登陆数据库时,
数据库系统
会判断我们的用户名和密码正确不,那我们自然想到这些信息肯定保存在数据库里面哪个地方,肯定会有一个啥保存用户信息的表.没错,所以用户信息保存在表user$中.
select
*
from
user$
用这个sql一查你会看到所有用户名和密码,还有其他一些信息.不过用户名都是加密的.所以即使是管理员也看不到任何用户的密码,只能改用户的密码.
那肯定想,用户名和密码在这那我在这里把名字改下就行了啊.实际上改名就真这么做.
select
user#,
name
from
user$
where
name
=
'ARWEN';
--先瞧下arwen的信息,其中user#就是一个
序列号
,相当于
身份证号
吧,假如这里是250
update
user$
set
name
=
'WEIWENHP'
where
user#
=
250;
--于是用户名就改好了啊.当然是update语句就记得再commit提交下啊.
还要做的工作
我人知道要是改了密码的话马上就生效能用的啊,改名字了咋就不成了呢.
我们知道数据库中很重要的一点是要保证
数据一致性
,某个地方的数据更改了,相关的地方也得跟着改才好.那这里肯定是因为登陆时读取的用户信息还没有更新.有
数据不一致性
的情况出现.你可能会想到有时我们用alter更改一些参数信息得重启数据库才能生效.
于是你
就想不会
我改
了名还得重启数据库.
这也太恐怖了吧
.
实际上不用重启数据库拉,你这样强制更新下.
alter
system
checkpoint
;
alter
system
flush
shared_pool;
你再次
登陆就发现可以登陆了啊.而之前的arwen用户就登不了啊.
select user#, name from user$ where name = 'ARWEN'; --先瞧下arwen的信息,其中user#就是一个序列号,相当于身份证号吧,假如这里是250
update user$ set name = 'WEIWENHP' where user# = 250; --于是用户名就改好了啊.当然是update语句就记得再commit提交下啊.
操作如下:
以Windows操作系统为例,打开命令提示符,输入命令sqlplus /nolog ,进入oracle控制台,并输入 conn /as sysdba;以DBA角色进入。
连接成功后,输入“select username from dba_users”查看用户列表
若修改某一个用户密码, 修改用户口令 格式为:
alter user 用户名 identified by 新密码;
以system 为例,密码修改为 123456. 可输入
alter user system identified by 123456;
常用命令:查看Oracle数据库中的所有用户名
查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,system
select * from dba_users;
查看你能管理的所有用户!
select * from all_users;
查看当前用户信息 !
select * from user_users;
你是要改用户名吗?
比如要把用户TEXT改为TEXT_BAK:
SQL select user#,name,password from user$ where name ='TEXT';
USER# NAME PASSWORD
---------- ------------------------------ ---------------------------
78 TEXT 21EDA78F89D6FACD
更改用户名
SQL update user$ set name='TEXT_BAK' where user#=78;
1 row updated.
SQL commit;
Commit complete.
用户名更改后需要清楚缓存数据字典信息。
SQL alter system checkpoint; ----强制写入数据文件
System altered.
SQL alter system flush shared_pool; ----清楚缓存数据字典信息,强制oracle读实际数据(即更改后的数据)
System altered.
并变更用户登录密码。
SQL alter user TEXT_BAK identified by 'aaaaaa';
User altered.