ORA-28000: the account is locked以及權限問題

問題1

a.錯誤描述:ORA-28000: the account is locked
b.問題原因:一般數據庫默認是10次嘗試失敗後鎖住用戶
c.解決過程
0.查看用戶是否被鎖 dbaName

select LOCK_DATE,username from dba_users where username='dbaName';

說明:LOCK_DATE爲空說明沒有鎖定,非空爲鎖定。

1.登陸系統用戶system或者sys
2.執行下面語句 dbaName 表示需要被解鎖的用戶。

alter user dbaName account unlock; --解鎖登陸賬號

批註:系統用戶信息如下

system默認:manager
sys默認:change_on_install

使用SQL Plus登錄數據庫時,system使用密碼manager可直接登錄

但如果是sys用戶,密碼必須加上as sysdba,即完整密碼爲:change_on_installas sysdba

sqlplus: alter user dbaName account unlock; 解鎖登陸賬號

sqlplus: alter user dbaName account lock;  凍結登陸賬號

sqlplus: alter user dbaName identified by "password"; 修改登錄賬號密碼

問題2

a.問題代碼:ora-0131
b.問題描述:Oracle debug存儲時提示ORA-0131權限不足,再調試按鈕變灰的。
在這裏插入圖片描述
c.解決方案:賦予相應的權限
在有dba權限的用戶下面執行下面語句,dc_report表示用戶

GRANT debug any procedure, debug connect session to dc_report;

關於權限語句彙總

--賦予權限
grant  dba to  xxx;

--刪除權限
revoke dba from xxx;
--賦予用戶登錄數據庫的權限
grant create session to xxx;
--授予用戶操作表的權限
grant unlimited tablespace to xxx;
grant create tablespace to xxx;
grant alter tablespace to xxx;
grant drop tablespace to xxx;
grant manage tablespace to xxx;

--撤銷用戶操作表空間的權限
revoke unlimited tablespace from xxx;
revoke create tablespace from xxx;
revoke alter tablespace from xxx;
revoke drop tablespace from xxx;
revoke manage tablespace from xxx;

grant create session to zhangsan;--授予zhangsan用戶創建session的權限,即登陸權限
grant unlimited session to zhangsan;--授予zhangsan用戶使用表空間的權限
grant create table to zhangsan;--授予創建表的權限
grant drop table to   zhangsan;--授予刪除表的權限
grant insert table to zhangsan;--插入表的權限
grant update table to zhangsan;--修改表的權限

grant select on tablename to zhangsan;--授予zhangsan用戶查看指定表的權限
grant drop on tablename to zhangsan--授予刪除表的權限
grant insert on tablename to zhangsan;--授予插入的權限
grant update on tablename to zhangsan;--授予修改表的權限

select * from user_sys_privs;--查看當前用戶所有權限
select * from user_tab_privs;--查看所用用戶對錶的權限

表空間使用情況

--表空間使用情況
SELECT a.tablespace_name, 
a.bytes total, 
b.bytes used, 
c.bytes free, 
(b.bytes * 100) / a.bytes "% USED ", 
(c.bytes * 100) / a.bytes "% FREE " 
FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c 
WHERE a.tablespace_name = b.tablespace_name 
AND a.tablespace_name = c.tablespace_name;

參考:https://www.cnblogs.com/snail-zhe/p/7245257.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章