1.創(chuàng)建新的用戶;
成都創(chuàng)新互聯(lián)是一家專業(yè)提供淮上企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、H5開發(fā)、小程序制作等業(yè)務(wù)。10年已為淮上眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
2.對(duì)已有用戶進(jìn)行相關(guān)屬性的修改操作。
部分屬性的修改涉及到生產(chǎn)環(huán)境的要申請停業(yè),避免業(yè)務(wù)交易無法正常進(jìn)行:
1.創(chuàng)建新用戶對(duì)原有的業(yè)務(wù)無影響,風(fēng)險(xiǎn)級(jí)別低,但要考慮新用戶導(dǎo)入的數(shù)據(jù)量,避免數(shù)據(jù)表空間爆滿,TEMP空間與歸檔空間不足。
2.修改用戶密碼:
1)會(huì)導(dǎo)致繼續(xù)使用之前密碼連接數(shù)據(jù)庫的應(yīng)用出現(xiàn)連接故障,如果該應(yīng)用有重連機(jī)制,超過嘗試次數(shù)會(huì)導(dǎo)致用戶被鎖,風(fēng)險(xiǎn)級(jí)別高。
2)會(huì)導(dǎo)致其他庫上未進(jìn)行修改的 DBLINK,無法遠(yuǎn)程連接到本數(shù)據(jù)庫,風(fēng)險(xiǎn)級(jí)別 高。
3.修改用戶默認(rèn)表空間,不影響現(xiàn)有的業(yè)務(wù),風(fēng)險(xiǎn)級(jí)別低。
4.修改用戶默認(rèn)臨時(shí)表空間,不影響現(xiàn)有的業(yè)務(wù),風(fēng)險(xiǎn)級(jí)別低。
5.修改用戶 profile,會(huì)影響用戶會(huì)話的連接配額,如連接會(huì)話數(shù)、密碼過期設(shè)定、 空閑時(shí)間、連接時(shí)間等,風(fēng)險(xiǎn)級(jí)別中。
6.修改賬戶狀態(tài),會(huì)影響會(huì)話連接數(shù)據(jù)庫,風(fēng)險(xiǎn)級(jí)別高。
7.修改密碼口令過期,會(huì)影響會(huì)話連接數(shù)據(jù)庫,風(fēng)險(xiǎn)級(jí)別高。
8.修改用戶表空間配額,會(huì)影響用戶在表空間中的使用額度,風(fēng)險(xiǎn)級(jí)別中。
9.修改用戶權(quán)限,會(huì)影響會(huì)話的執(zhí)行權(quán)限,風(fēng)險(xiǎn)級(jí)別中。
不管是生產(chǎn)環(huán)境還是測試環(huán)境,備份永遠(yuǎn)是第一步操作,在評(píng)估時(shí)也要考慮是否有回退的可能,不要拿開弓沒有回頭箭當(dāng)擋箭牌:
1.修改密碼時(shí),提前保存密文密碼,同時(shí)找出到修改庫的 DBLINK 也要修改。
2.修改用戶屬性時(shí),提前保存原來的用戶屬性信息。
3.同研發(fā)確認(rèn)用戶需求,確保不影響業(yè)務(wù)。
4.安排變更窗口,停止應(yīng)用。
1.創(chuàng)建新用戶
2.用戶屬性修改
3.修改密碼 修改用戶密碼:
4.修改遠(yuǎn)程庫 DBLINK 的用戶密碼:
5.修改默認(rèn)表空間及臨時(shí)表空間
6.修改 profile
7.修改賬戶狀態(tài)(鎖定,解鎖)
8.修改口令過期
9.修改表空間配額
10.權(quán)限,角色授予與回收
1.重新登陸進(jìn)行賬戶驗(yàn)證新密碼及賬戶鎖定狀態(tài)是否符合預(yù)期。
2.在遠(yuǎn)程庫進(jìn)行 DBLINK 連接驗(yàn)證是否正常。
3.檢查用戶賬號(hào)狀態(tài)是否正常
4.檢查具體的權(quán)限是否符合要求
5.應(yīng)用啟動(dòng)后,日志是否正常,最后觀察業(yè)務(wù)是否正常進(jìn)行
1.刪除新用戶
2.修改回用戶舊密碼:
3.修改遠(yuǎn)程庫 DBLINK 的用戶密碼:
4.修改默認(rèn)表空間及臨時(shí)表空間
5.修改 profile配置
6.修改賬戶狀態(tài)(鎖定,解鎖)
7.修改表空間配額
8.權(quán)限,角色授予與回收
1.用戶舊密碼登錄驗(yàn)證是否正常
2.DBLINK連接是否正常
3.查看用戶的默認(rèn)表空間與臨時(shí)表空間是否與最初狀態(tài)一致
4.profile配置是否與最初狀態(tài)一致
5.賬戶的狀態(tài)是否與最初狀態(tài)一致
6.表空間配置是否與最初狀態(tài)一致
7.權(quán)限等是否與最初狀態(tài)一致。
備注:回退方案的驗(yàn)證最重要的就是第一個(gè)步驟的備份與信息記錄。這樣才能驗(yàn)證回退方案是否達(dá)到預(yù)期。
在以SYSDBA身份登陸時(shí)可以修改其他用戶的密碼,比如:用戶已更改。在以SYSDBA身份登陸時(shí)可以修改其他用戶的密碼,比如:用戶已更改。一般來說,oracle數(shù)據(jù)庫安裝后,里面有很多個(gè)默認(rèn)賬號(hào)和密碼,比較常用的是:賬號(hào):scott
密碼:tiger
賬號(hào):system
密碼:manager
賬號(hào):sys
密碼:任意字符。當(dāng)我們想創(chuàng)建一個(gè)賬號(hào)時(shí),可以使用sys登錄sysdba后,創(chuàng)建用戶(需要授權(quán)),代碼如下我們一般使用的是用scott登錄sysdba,這時(shí)候有可能出現(xiàn)賬戶未解鎖的狀態(tài),這時(shí)候可以用來解鎖賬戶。解鎖之后可能會(huì)要求你改密碼:可以用
改用戶名的用處
至于改名字的用處嘛,在這樣一種情景下非常有用.假如某個(gè)公司給每個(gè)員工一個(gè)賬戶,用戶名就是你的英文名.當(dāng)某個(gè)員工arwen要離職了,那就要?jiǎng)h除掉用戶arwen了.但是我們知道oracle中用戶與此用戶下面創(chuàng)建的對(duì)象是完全綁定到一起的,而不像sql
server中表等對(duì)象是可以和用戶完全分開.這樣的話你一刪掉用戶arwen那下面的數(shù)據(jù)全沒了.假如我們需要那些數(shù)據(jù)
咋整
呢,最容易想到的是把所有數(shù)據(jù)先導(dǎo)出,然后再導(dǎo)入到某個(gè)用戶下面.但這樣比較麻煩.所以如果能改名字就更好點(diǎn)了.
接著用上面的例子.假如又來了新員工,weiwenhp.他是接arwen的班的.所以他很需要用戶arwen下面的數(shù)據(jù).此時(shí)就把用戶arwen改成用戶weiwenhp.我們登陸數(shù)據(jù)庫時(shí),
數(shù)據(jù)庫系統(tǒng)
會(huì)判斷我們的用戶名和密碼正確不,那我們自然想到這些信息肯定保存在數(shù)據(jù)庫里面哪個(gè)地方,肯定會(huì)有一個(gè)啥保存用戶信息的表.沒錯(cuò),所以用戶信息保存在表user$中.
select
*
from
user$
用這個(gè)sql一查你會(huì)看到所有用戶名和密碼,還有其他一些信息.不過用戶名都是加密的.所以即使是管理員也看不到任何用戶的密碼,只能改用戶的密碼.
那肯定想,用戶名和密碼在這那我在這里把名字改下就行了啊.實(shí)際上改名就真這么做.
select
user#,
name
from
user$
where
name
=
'ARWEN';
--先瞧下arwen的信息,其中user#就是一個(gè)
序列號(hào)
,相當(dāng)于
身份證號(hào)
吧,假如這里是250
update
user$
set
name
=
'WEIWENHP'
where
user#
=
250;
--于是用戶名就改好了啊.當(dāng)然是update語句就記得再commit提交下啊.
還要做的工作
我人知道要是改了密碼的話馬上就生效能用的啊,改名字了咋就不成了呢.
我們知道數(shù)據(jù)庫中很重要的一點(diǎn)是要保證
數(shù)據(jù)一致性
,某個(gè)地方的數(shù)據(jù)更改了,相關(guān)的地方也得跟著改才好.那這里肯定是因?yàn)榈顷憰r(shí)讀取的用戶信息還沒有更新.有
數(shù)據(jù)不一致性
的情況出現(xiàn).你可能會(huì)想到有時(shí)我們用alter更改一些參數(shù)信息得重啟數(shù)據(jù)庫才能生效.
于是你
就想不會(huì)
我改
了名還得重啟數(shù)據(jù)庫.
這也太恐怖了吧
.
實(shí)際上不用重啟數(shù)據(jù)庫拉,你這樣強(qiáng)制更新下.
alter
system
checkpoint
;
alter
system
flush
shared_pool;
你再次
登陸就發(fā)現(xiàn)可以登陸了啊.而之前的arwen用戶就登不了啊.
select user#, name from user$ where name = 'ARWEN'; --先瞧下arwen的信息,其中user#就是一個(gè)序列號(hào),相當(dāng)于身份證號(hào)吧,假如這里是250
update user$ set name = 'WEIWENHP' where user# = 250; --于是用戶名就改好了啊.當(dāng)然是update語句就記得再commit提交下啊.
操作如下:
以Windows操作系統(tǒng)為例,打開命令提示符,輸入命令sqlplus /nolog ,進(jìn)入oracle控制臺(tái),并輸入 conn /as sysdba;以DBA角色進(jìn)入。
連接成功后,輸入“select username from dba_users”查看用戶列表
若修改某一個(gè)用戶密碼, 修改用戶口令 格式為:
alter user 用戶名 identified by 新密碼;
以system 為例,密碼修改為 123456. 可輸入
alter user system?identified by 123456;
常用命令:查看Oracle數(shù)據(jù)庫中的所有用戶名
查看數(shù)據(jù)庫里面所有用戶,前提是你是有dba權(quán)限的帳號(hào),如sys,system
select * from dba_users;
查看你能管理的所有用戶!
select * from all_users;
查看當(dāng)前用戶信息 !
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.
用戶名更改后需要清楚緩存數(shù)據(jù)字典信息。
SQL alter system checkpoint; ----強(qiáng)制寫入數(shù)據(jù)文件
System altered.
SQL alter system flush shared_pool; ----清楚緩存數(shù)據(jù)字典信息,強(qiáng)制oracle讀實(shí)際數(shù)據(jù)(即更改后的數(shù)據(jù))
System altered.
并變更用戶登錄密碼。
SQL alter user TEXT_BAK identified by 'aaaaaa';
User altered.