如何看資料庫的使用者登入的記錄檔案

時間 2022-03-25 22:30:37

1樓:王蘆詩涵

檢視oracle資料庫的使用者登入的記錄檔案是從log檔案中挖出使用者登入資訊。

1、建立資料字典檔案(data-dictionary)

(1)首先在init.ora初始化引數檔案中,指定資料字典檔案的位置,也就是新增一個引數utl_file_dir,該引數值為伺服器中放置資料字典檔案的目錄。

如:utl_file_dir = ($oracle_home\logs) ,重新啟動資料庫,使新加的引數生效。

(2)建立資料字典檔案:

sql> connect /as sysdba

sql> execute dbms_logmnr_d.build(dictionary_filename =>

'dict.ora',dictionary_location => 'g:\oracle\logs');

pl/sql procedure successfully completed

2、建立要分析的日誌檔案列表:

(1)建立分析列表,即所要分析的日誌:

sql> execute dbms_logmnr.add_logfile(logfilename =>

'g:\oracle\oradata\oradbsp\redo04.log',options => dbms_logmnr.new);

pl/sql procedure successfully completeds

(2)新增分析日誌檔案(一次新增1個為宜):

sql>

execute dbms_logmnr.add_logfile(logfilename =>

'g:\oracle\oradata\oradbsp\redo05.log',

options => dbms_logmnr.addfile);

pl/sql procedure successfully completed

3、使用logminer進行日誌分析:

(1)無限制條件,即用資料字典檔案對要分析的日誌檔案所有內容做分析:

sql> execute dbms_logmnr.start_logmnr

(dictfilename => 'g:\oracle\logs\dict.ora');

pl/sql procedure successfully completed

2樓:

1 audit

用審記來記錄使用者的操作資訊

2 trigger

用系統觸發器來記錄使用者登入

3 logmnr

從log檔案中挖出使用者登入資訊

推薦使用第3種,不佔用系統資源,而且很方便。

sql server 2008 登入使用者存放在哪個表裡。怎麼查詢登入使用者。請高手們指教~~

3樓:

存放在sys.sql_logins表中 查詢的方法和正常的查詢相同 select * from 表名

4樓:匿名使用者

使用windows身份認證登入,在裡面找users表

5樓:老師小喬

官方參考資料:

返回使用者名稱和使用者 id

的函式有幾個系統函式可返回使用者名稱和使用者 id。要理解這些函式的引數和輸出結果,首先必須理解 microsoft® sql server™ 2000 中使用的名稱和 id 的型別。

登入到 sql server 的每個使用者在 sql server 中都有兩個級別的名稱,每個名稱都與一個唯一的 id 相關聯:

登入名。

被授權登入到 sql server 的每個使用者都有一個登入名,使他們得以訪問 sql server 例項。有兩種型別的登入名:microsoft windows® 帳戶名。

sysadmin 或 securityadmin 固定伺服器角色成員可以使用

sp_grantlogin 對 windows 組或 windows 帳戶的個別使用者授權,使其可登入到 sql server

例項。於是,windows 帳戶所標識的使用者或 windows 組中的任何組員都可以使用 windows 身份驗證連線 sql server

例項。master.dbo.syslogins.loginname 中儲存了所有 windows 帳戶名或組名。用於 windows 帳戶或組的

windows security_identifier 儲存在 syslogins.sid 中。sql server 登入名。

使用 sql server 身份驗證登入時將用到這些登入名。sql server 登入名由 sysadmin 或

securityadmin 固定伺服器角色的成員使用 sp_addlogin 進行定義。所有 sql server 登入名都儲存在

master.dbo.syslogins.loginname 中。sql server 生成用作 security_identifier

的 guid 並將其儲存在 syslogins.sid 中。sql server 2000 將 master.dbo.syslogins.sid 作為登入名的

security_identifier。

資料庫使用者名稱。

所有 windows 帳戶或 sql server

登入都必須與已授權使用者訪問的每個資料庫中的使用者名稱相關聯,或者該資料庫必須已啟用客戶訪問。資料庫使用者名稱由 db_owner 或

db_accessadmin 固定資料庫角色的成員來定義,並儲存在每個資料庫所建的 sysusers

表中。每個資料庫使用者名稱都與儲存在 sysusers.uid 中的一個資料庫使用者 id 相關聯。

每個使用者的 security_identifier 都儲存在 sysusers.sid

中;因此,可將使用者對映回他們相應的登入。如果使用同一資料庫使用者名稱作為 sql server 登入名或 windows

帳戶名,則可減少混淆;但是,不要求一定這樣做。

有關登入和資料庫使用者帳戶的更多資訊,請參見登入、使用者、角色和組。

獲得登入帳戶或 id

連線到 sql server 2000 後,使用:

suser_sname,用來獲得與 security_identifier 關聯的 sql server 登入名或 windows 帳戶。

suser_sid,用來獲得與 sql server 登入名或 windows nt 帳戶關聯的 security_identifier。

suser_sid()(不帶 login_account 引數的指定 suser_sid),用於獲得當前連線的 security_identifier,不管是否使用 sql server 身份驗證或 windows 身份驗證。

sql-92 函式 system_user,以獲得用於 windows 身份驗證連線的 windows 帳戶,或用於 sql server

身份驗證連線的 sql server 登入名。在 transact-sql 中,system_user 實現為 suser_sname()(不指定

security_identifier 的 suser_sname)的同義詞。

在 sql server 2000 中,返回登入名或帳戶的函式以下面的方式操作:

suser_sname(security_identifier)

suser_sname 具有以下選項之一:用於 windows 帳戶或組的 security_identifier,這種情況下,該函式返回 windows

帳戶名或組名。為 sql server 登入生成的偽 security_identifier,這種情況下,函式返回 sql server 登入名。

如果沒有為使用 windows 身份驗證進行的連線指定 security_identifier,則 suser_sname

將返回與該連線關聯的 windows 帳戶名。如果是使用 sql server 身份驗證進行的連線,suser_sname 將返回與該連線關聯的 sql

server 登入。

system_user

此 sql-92 函式在 transact-sql 中實現為 suser_sname()(不指定

security_identifier 引數的 suser_sname)的同義詞。獲得資料庫使用者名稱或使用者 id

連線到 sql server 2000 後,使用:

user_id,用來獲得與資料庫使用者名稱關聯的資料庫使用者 id。

user_id(),用來獲得與當前連線關聯的資料庫使用者 id。

user_name,用來獲得與資料庫使用者 id 關聯的資料庫使用者名稱。

sql-92 current_user 或 session_user 函式,都是用來獲得與當前連線關聯的資料庫使用者名稱。在 transact-sql

中,這些函式實現為 user_name()(不指定 database_user_id 引數的

user_name)的同義詞。transact-sql 函式 user 也實現為 user_name() 的同義詞。

sql-92 允許在這樣的 sql 模組中對 sql 語句進行編碼:該模組的授權識別符號與已連線到 sql

資料庫的使用者的授權識別符號可以相互獨立。sql-92 指定 session_user 總是返回進行連線的使用者的授權識別符號。對於從 sql

模組執行的任何語句,current_user 返回 sql 模組的授權識別符號;如果 sql 語句不是從 sql

模組執行的,則返回進行連線的使用者的授權識別符號。如果 sql 模組沒有單獨的授權識別符號,則 sql-92 指定 current_user 返回與

session_user 相同的值。microsoft sql server 沒有單獨用於 sql 模組的授權識別符號,因此,current_user 和

session_user 總是返回相同的值。user 函式是由 sql-92 為向後相容性而定義的函式,用於為早期版本的標準所編寫的應用程式。user

被指定為與 current_user 返回相同的值。

在 sql server 中,返回登入名或帳戶的函式以下面的方式操作:

user_id('database_user_name')

user_id 返回與指定資料庫使用者名稱關聯的資料庫使用者 id。如果未指定 database_user_name,則

user_id 返回與當前連線關聯的資料庫使用者 id。

user_name(database_user_id)

user_name 返回與指定的資料庫使用者 id 關聯的資料庫使用者名稱。如果未指定 database_user_id,則

user_name 返回與當前連線關聯的資料庫使用者名稱。

current_user、session_user、user

這些函式都是 user_name()(不指定 database_user_id 引數的 user name)的同義詞。

如何查詢oracle資料庫的操作記錄

彭城程式詩人 用sys使用者以dba身份登入。然後,檢視檢視 v sql,如下參考 select from v sql t where t.service orcl and t.parsing schema name bhoa and t.sql text like update order by ...

oracle資料庫資料匯入同使用者,如何實現覆蓋

4終 1 重複匯入已存在的資料庫,有以下兩種匯入方法imp和impdp。2 imp匯入的時候 如果已經存在此表,會告訴你無法建立此表,因為表已經存在。同時使用引數 full y ignore y 那就是全部匯入,把dmp裡的所有資料插入到表裡面。3 資料備份,使用命令 exp user user f...

如何檢視mysql資料庫的使用者,如何檢視mysql資料庫使用者密碼

進入mysql終端use mysql select user from user 就可以看到資料庫的使用者了。如何檢視mysql資料庫使用者密碼 如何檢視mysql資料庫的登入名和密碼 通過windows的服務管理器檢視。首先安裝maki5。服務端 開始 執行 輸入 services.msc 回車。...