重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
好像沒有直接更改的辦法吧,你可以用exp/imp的方法先把數據導出,在導入到另外一個用戶下
我們提供的服務有:網站設計制作、成都網站制作、微信公眾號開發、網站優化、網站認證、同江ssl等。為成百上千企事業單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的同江網站制作公司
或者(先去這個表下面給另外一個用戶賦查詢權限:grant select on 表名 to user_b;)
然后去b用戶下執行:
create table 表名 as select * from user_a.表名 where 1=1;
再去用戶a下drop掉這個表
1.創建新的用戶;
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,這時候有可能出現賬戶未解鎖的狀態,這時候可以用來解鎖賬戶。解鎖之后可能會要求你改密碼:可以用
你是要改用戶名嗎?
比如要把用戶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.
改用戶名的用處 至于改名字的用處嘛,在這樣一種情景下非常有用.假如某個公司給每個員工一個賬戶,用戶名就是你的英文名.當某個員工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用戶就登不了啊.
在以SYSDBA身份登陸時可以修改其他用戶的密碼,比如:
SQL alter user user01 identified by user10;
用戶已更改。
這個是把USER01用戶密碼修改為USER10