當前位置:首頁 » 編程語言 » 如何檢驗sql限制策略
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

如何檢驗sql限制策略

發布時間: 2022-05-18 11:04:37

⑴ 如何通過sql語句對查詢的數據結果做限制:

select left(a,3000) from A

⑵ mysql如何設置賬戶鎖定策略

修改oracle用戶密碼永不過期:
1、查看用戶的proifle是哪個,一般是default:

sql>SELECT username,PROFILE FROM dba_users;

2、查看指定概要文件(如default)的密碼有效期設置:

sql>SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

3、將密碼有效期由默認的180天修改成「無限制」:

sql>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

修改之後不需要重啟動資料庫,會立即生效。

4、修改後,還沒有被提示ORA-28002警告的帳戶不會再碰到同樣的提示;

已經被提示的帳戶必須再改一次密碼,

⑶ sql 資料庫 密碼策略 永久密碼設置方法

修改oracle用戶密碼永不過期:
1、查看用戶的proifle是哪個,一般是default:

sql>SELECT username,PROFILE FROM dba_users;

2、查看指定概要文件(如default)的密碼有效期設置:

sql>SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

3、將密碼有效期由默認的180天修改成「無限制」:

sql>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

修改之後不需要重啟動資料庫,會立即生效。

4、修改後,還沒有被提示ORA-28002警告的帳戶不會再碰到同樣的提示;

已經被提示的帳戶必須再改一次密碼,舉例如下:中華考試網

$sqlplus / as sysdba

sql> alter user smsc identified by <原來的密碼> ----不用換新密碼

⑷ SQL約束限制

alter table test02 add constraint fk_id11 foreign key(id11) references test01(id1);

如上述代碼,給student表的」班級編號「欄位添加外鍵約束,關聯到class表中班級編號上即可,注意:class表中的班級編號必須為主鍵或者唯一索引,否則無法創建基於此欄位的外鍵。

⑸ 如何進行SQL性能優化

這里分享下mysql優化的幾種方法。

1、首先在打開的軟體中,需要分別為每一個表創建 InnoDB FILE的文件。

⑹ SQLServer安全規劃全攻略的驗證方法選擇

本文對驗證(authentication)和授權(authorization)這兩個概念作不同的解釋。驗證是指檢驗用戶的身份標識;授權是指允許用戶做些什麼。在本文的討論中,驗證過程在用戶登錄SQL Server的時候出現,授權過程在用戶試圖訪問數據或執行命令的時候出現。
構造安全策略的第一個步驟是確定SQL Server用哪種方式驗證用戶。SQL Server的驗證是把一組帳戶、密碼與Master資料庫Sysxlogins表中的一個清單進行匹配。Windows NT/2000的驗證是請求域控制器檢查用戶身份的合法性。
一般地,如果伺服器可以訪問域控制器,我們應該使用Windows NT/2000驗證。域控制器可以是Win2K伺服器,也可以是NT伺服器。無論在哪種情況下,SQL Server都接收到一個訪問標記(Access Token)。
訪問標記是在驗證過程中構造出來的一個特殊列表,其中包含了用戶的SID(安全標識號)以及一系列用戶所在組的SID。正如本文後面所介紹的,SQL Server以這些SID為基礎授予訪問許可權。
注意,操作系統如何構造訪問標記並不重要,SQL Server只使用訪問標記中的SID。也就是說,不論你使用SQL Server 2000、SQL Server 7.0、Win2K還是NT進行驗證都無關緊要,結果都一樣。
如果使用SQL Server驗證的登錄,它最大的好處是很容易通過Enterprise Manager實現,最大的缺點在於SQL Server驗證的登錄只對特定的伺服器有效,也就是說,在一個多伺服器的環境中管理比較困難。
使用SQL Server進行驗證的第二個重要的缺點是,對於每一個資料庫,我們必須分別地為它管理許可權。如果某個用戶對兩個資料庫有相同的許可權要求,我們必須手工設置兩個資料庫的許可權,或者編寫腳本設置許可權。
如果用戶數量較少,比如25個以下,而且這些用戶的許可權變化不是很頻繁,SQL Server驗證的登錄或許適用。但是,在幾乎所有的其他情況下(有一些例外情況,例如直接管理安全問題的應用),這種登錄方式的管理負擔將超過它的優點。

⑺ SQL中,什麼是數據完整性數據完整性分為幾種

數據完整性(Data Integrity)是指數據的精確性(Accuracy) 和可靠性(Reliability)。它是應防止資料庫中存在不符合語義規定的數據和防止因錯誤信息的輸入輸出造成無效操作或錯誤信息而提出的。數據完整性分為四類:實體完整性(Entity Integrity)、域完整
性(Domain Integrity)、參照完整性(Referential Integrity)、用戶定義的完整性(User-definedIntegrity)。
資料庫採用多種方法來保證數據完整性,包括外鍵、束約、規則和觸發器。系統很好地處理了這四者的關系,並針對不同的具體情況用不同的方法進行,相互交叉使用,相補缺點。

⑻ 如何防範SQL注入 SQL注入測試

(1)對於動態構造SQL查詢的場合,可以使用下面的技術:

第一:替換單引號,即把所有單獨出現的單引號改成兩個單引號,防止攻擊者修改SQL命令的含義。再來看前面的例子,「SELECT * from Users WHERE login = ''' or ''1''=''1' AND password = ''' or ''1''=''1'」顯然會得到與「SELECT * from Users WHERE login = '' or '1'='1' AND password = '' or '1'='1'」不同的結果。

第二:刪除用戶輸入內容中的所有連字元,防止攻擊者構造出類如「SELECT * from Users WHERE login = 'mas' -- AND password =''」之類的查詢,因為這類查詢的後半部分已經被注釋掉,不再有效,攻擊者只要知道一個合法的用戶登錄名稱,根本不需要知道用戶的密碼就可以順利獲得訪問許可權。

第三:對於用來執行查詢的資料庫帳戶,限制其許可權。用不同的用戶帳戶執行查詢、插入、更新、刪除操作。由於隔離了不同帳戶可執行的操作,因而也就防止了原本用於執行SELECT命令的地方卻被用於執行INSERT、UPDATE或DELETE命令。

⑵ 用存儲過程來執行所有的查詢。SQL參數的傳遞方式將防止攻擊者利用單引號和連字元實施攻擊。此外,它還使得資料庫許可權可以限制到只允許特定的存儲過程執行,所有的用戶輸入必須遵從被調用的存儲過程的安全上下文,這樣就很難再發生注入式攻擊了。

⑶ 限製表單或查詢字元串輸入的長度。如果用戶的登錄名字最多隻有10個字元,那麼不要認可表單中輸入的10個以上的字元,這將大大增加攻擊者在SQL命令中插入有害代碼的難度。

⑷ 檢查用戶輸入的合法性,確信輸入的內容只包含合法的數據。數據檢查應當在客戶端和伺服器端都執行——之所以要執行伺服器端驗證,是為了彌補客戶端驗證機制脆弱的安全性。

在客戶端,攻擊者完全有可能獲得網頁的源代碼,修改驗證合法性的腳本(或者直接刪除腳本),然後將非法內容通過修改後的表單提交給伺服器。因此,要保證驗證操作確實已經執行,唯一的辦法就是在伺服器端也執行驗證。你可以使用許多內建的驗證對象,例如RegularExpressionValidator,它們能夠自動生成驗證用的客戶端腳本,當然你也可以插入伺服器端的方法調用。如果找不到現成的驗證對象,你可以通過CustomValidator自己創建一個。

⑸ 將用戶登錄名稱、密碼等數據加密保存。加密用戶輸入的數據,然後再將它與資料庫中保存的數據比較,這相當於對用戶輸入的數據進行了「消毒」處理,用戶輸入的數據不再對資料庫有任何特殊的意義,從而也就防止了攻擊者注入SQL命令。System.Web.Security.FormsAuthentication類有一個,非常適合於對輸入數據進行消毒處理。

⑹ 檢查提取數據的查詢所返回的記錄數量。如果程序只要求返回一個記錄,但實際返回的記錄卻超過一行,那就當作出錯處理。
---------------------------------------------------------------------------------------------------------------------------
關鍵是明白原理,其實防範很簡單的,
1.過濾SQL需要的參數中的敏感字元(注意加入忽略大小寫)
2.禁用資料庫伺服器的xp_cmdshell存儲過程,刪除相應用到的dll
3.屏蔽伺服器異常信息

⑼ sqlserver有哪些安全策略

Microsoft建立了一種既靈活又強大的安全管理機制,它能夠對用戶訪問SQL Server伺服器系統和資料庫的安全進行全面地管理。按照本文介紹的步驟,你可以為SQL Server 7.0(或2000)構造出一個靈活的、可管理的安全策略,而且它的安全性經得起考驗。

一、驗證方法選擇
本文對驗證(authentication)和授權(authorization)這兩個概念作不同的解釋。驗證是指檢驗用戶的身份標識;授權是指 允許用戶做些什麼。在本文的討論中,驗證過程在用戶登錄SQL Server的時候出現,授權過程在用戶試圖訪問數據或執行命令的時候出現。
構造安全策略的第一個步驟是確定SQL Server用哪種方式驗證用戶。SQL Server的驗證是把一組帳戶、密碼與Master資料庫Sysxlogins表中的一個清單進行匹配。Windows NT/2000的驗證是請求域控制器檢查用戶身份的合法性。一般地,如果伺服器可以訪問域控制器,我們應該使用Windows NT/2000驗證。域控制器可以是Win2K伺服器,也可以是NT伺服器。無論在哪種情況下,SQL Server都接收到一個訪問標記(Access Token)。訪問標記是在驗證過程中構造出來的一個特殊列表,其中包含了用戶的SID(安全標識號)以及一系列用戶所在組的SID。正如本文後面所介紹 的,SQL Server以這些SID為基礎授予訪問許可權。注意,操作系統如何構造訪問標記並不重要,SQL Server只使用訪問標記中的SID。也就是說,不論你使用SQL Server 2000、SQL Server 7.0、Win2K還是NT進行驗證都無關緊要,結果都一樣。
如果使用SQL Server驗證的登錄,它最大的好處是很容易通過Enterprise Manager實現,最大的缺點在於SQL Server驗證的登錄只對特定的伺服器有效,也就是說,在一個多伺服器的環境中管理比較困難。使用SQL Server進行驗證的第二個重要的缺點是,對於每一個資料庫,我們必須分別地為它管理許可權。如果某個用戶對兩個資料庫有相同的許可權要求,我們必須手工設 置兩個資料庫的許可權,或者編寫腳本設置許可權。如果用戶數量較少,比如25個以下,而且這些用戶的許可權變化不是很頻繁,SQL Server驗證的登錄或許適用。但是,在幾乎所有的其他情況下(有一些例外情況,例如直接管理安全問題的應用),這種登錄方式的管理負擔將超過它的優 點。
二、Web環境中的驗證
即使最好的安全策略也常常在一種情形前屈服,這種情形就是在Web應用中使用SQL Server的數據。在這種情形下,進行驗證的典型方法是把一組SQL Server登錄名稱和密碼嵌入到Web伺服器上運行的程序,比如ASP頁面或者CGI腳本;然後,由Web伺服器負責驗證用戶,應用程序則使用它自己的 登錄帳戶(或者是系統管理員sa帳戶,或者為了方便起見,使用Sysadmin伺服器角色中的登錄帳戶)為用戶訪問數據。
這種安排有幾個缺點,其中最重要的包括:它不具備對用戶在伺服器上的活動進行審核的能力,完全依賴於Web應用程序實現用戶驗證,當SQL Server需要限定用戶許可權時不同的用戶之間不易區別。如果你使用的是IIS 5.0或者IIS 4.0,你可以用四種方法驗證用戶。第一種方法是為每一個網站和每一個虛擬目錄創建一個匿名用戶的NT帳戶。此後,所有應用程序登錄SQL Server時都使用該安全環境。我們可以通過授予NT匿名帳戶合適的許可權,改進審核和驗證功能。
第二種方法是讓所有網站使用Basic驗證。此時,只有當用戶在對話框中輸入了合法的帳戶和密碼,IIS才會允許他們訪問頁面。IIS依靠一個NT 安全資料庫實現登錄身份驗證,NT安全資料庫既可以在本地伺服器上,也可以在域控制器上。當用戶運行一個訪問SQL Server資料庫的程序或者腳本時,IIS把用戶為了瀏覽頁面而提供的身份信息發送給伺服器。如果你使用這種方法,應該記住:在通常情況下,瀏覽器與服 務器之間的密碼傳送一般是不加密的,對於那些使用Basic驗證而安全又很重要的網站,你必須實現SSL(Secure Sockets Layer,安全套接字層)。
在客戶端只使用IE 5.0、IE 4.0、IE 3.0瀏覽器的情況下,你可以使用第三種驗證方法。你可以在Web網站上和虛擬目錄上都啟用NT驗證。IE會把用戶登錄計算機的身份信息發送給IIS,當 該用戶試圖登錄SQL Server時IIS就使用這些登錄信息。使用這種簡化的方法時,我們可以在一個遠程網站的域上對用戶身份進行驗證(該遠程網站登錄到一個與運行著Web 伺服器的域有著信任關系的域)。
最後,如果用戶都有個人數字證書,你可以把那些證書映射到本地域的NT帳戶上。個人數字證書與伺服器數字證書以同樣的技術為基礎,它證明用戶身份標 識的合法性,所以可以取代NT的Challenge/Response(質詢/回應)驗證演算法。Netscape和IE都自動在每一個頁面請求中把證書信 息發送給IIS。IIS提供了一個讓管理員把證書映射到NT帳戶的工具。因此,我們可以用數字證書取代通常的提供帳戶名字和密碼的登錄過程。
由此可見,通過NT帳戶驗證用戶時我們可以使用多種實現方法。即使當用戶通過IIS跨越Internet連接SQL Server時,選擇仍舊存在。因此,你應該把NT驗證作為首選的用戶身份驗證辦法。
三、設置全局組
構造安全策略的下一個步驟是確定用戶應該屬於什麼組。通常,每一個組織或應用程序的用戶都可以按照他們對數據的特定訪問要求分成許多類別。例如,會 計應用軟體的用戶一般包括:數據輸入操作員,數據輸入管理員,報表編寫員,會計師,審計員,財務經理等。每一組用戶都有不同的資料庫訪問要求。