sqlserver清理日誌檔案

2021-08-31 10:51:36 字數 2739 閱讀 3067

[b]清理日誌檔案[/b]

use master

goalter database matchkraft(資料庫名) set recovery ****** with no_wait

goalter database matchkraft(資料庫名) set recovery ******

gouse matchkraft(資料庫名)

godbcc shrinkfile (dcp_log(資料庫右鍵屬性-檔案-日誌型別-邏輯名稱), 0, truncateonly)

gouse master

go

資料庫右鍵屬性-選項-恢復模式-選擇簡單

[b]許可權管理[/b]

/*--示例說明

示例在資料庫pubs中建立乙個擁有表jobs的所有許可權、擁有表titles的select許可權的角色r_test

隨後建立了乙個登入l_test,然後在資料庫pubs中為登入l_test建立了使用者賬戶u_test

同時將使用者賬戶u_test新增到角色r_test中,使其通過許可權繼承獲取了與角色r_test一樣的許可權

最後使用deny語句拒絕了使用者賬戶u_test對錶titles的select許可權。

經過這樣的處理,使用l_test登入sql server例項後,它只具有表jobs的所有許可權。

--*/

use pubs

--建立角色 r_test

exec sp_addrole 'r_test'

--授予 r_test 對 jobs 表的所有許可權

grant all on jobs to r_test

--授予角色 r_test 對 titles 表的 select 許可權

grant select on titles to r_test

--新增登入 l_test,設定密碼為pwd,預設資料庫為pubs

exec sp_addlogin 'l_test','pwd','pubs'

--為登入 l_test 在資料庫 pubs 中新增安全賬戶 u_test

exec sp_grantdbaccess 'l_test','u_test'

--新增 u_test 為角色 r_test 的成員

exec sp_addrolemember 'r_test','u_test'

--拒絕安全賬戶 u_test 對 titles 表的 select 許可權

deny select on titles to u_test

/*--完成上述步驟後,用 l_test 登入,可以對jobs表進行所有操作,但無法對titles表查詢,雖然角色 r_test 有titles表的select許可權,但已經在安全賬戶中明確拒絕了對titles的select許可權,所以l_test無titles表的select許可權--*/

--從資料庫 pubs 中刪除安全賬戶

exec sp_revokedbaccess 'u_test'

--刪除登入 l_test

exec sp_droplogin 'l_test'

--刪除角色 r_test

exec sp_droprole 'r_test'

exec sp_dropsrvrolemember 'l_test', sysadmin

goexec sp_addsrvrolemember 'l_test', securityadmin

goexec sp_addsrvrolemember 'l_test', sysadmin

goexec sp_addsrvrolemember 'l_test',serveradmin

goexec sp_dropsrvrolemember 'l_test', serveradmin

go

[b]檢視鎖表[/b]

select b.session_id,b.login_name,db_name(a.resource_database_id),

object_name(a.resource_associated_entity_id,a.resource_database_id),

a.resource_type,a.request_mode,a.request_type

from sys.dm_tran_locks a inner join sys.dm_exec_sessions b

on a.request_session_id=b.session_id

where a.resource_type in ('database','object')

order by db_name(a.resource_database_id)

[b]注入[/b]

篩選輸入

篩選輸入可以刪除轉義符,這也可能有助於防止 sql 注入。但由於可引起問題的字元數量很大,因此這並不是一種可靠的防護方法。以下示例可搜尋字串分隔符。

private string safesqlliteral(string inputsql)

like 子句

請注意,如果要使用 like 子句,還必須對萬用字元字元進行轉義:

s = s.replace("[", "[");

s = s.replace("%", "[%]");

s = s.replace("_", "[_]");

SQL Server 日誌檔案清理

資料庫在使用過程中會發現日誌檔案越來越大,有時甚至超過了資料庫資料本身,而這些日誌資訊一直都不會使用到,這時就可以直接將過大的資料庫日誌檔案刪除掉。刪除步驟如下 1 登入 sql sever management studio 中,選擇需要處理的資料庫,右鍵 任務 分離 2 分離完成後,進入資料庫檔...

清理SQL Server日誌

use master goalter database 目標資料庫 set recovery with no wait goalter database 目標資料庫 set recovery 簡單模式 gouse 目標資料庫 godbcc shrinkfile n 目標日誌檔案邏輯名 2000,tr...

SQL Server 日誌已滿 清理日誌檔案指令碼

sql server 日誌已滿 清理日誌檔案指令碼 use master goalter database ypbxch set recovery with no wait ypbxch為需要清除日誌的資料庫名稱 goalter database ypbxch set recovery 簡單模式 y...