當前位置:首頁 » 存儲配置 » mssql存儲過程加密

mssql存儲過程加密

發布時間: 2023-03-21 11:09:07

⑴ mssql存儲過程

MS
SQL基礎教程:創建存儲過程
在MS
SQL
Server
2000
中,創建一個存儲過程有兩種方法:一種是使用Transaction-SQL
命令Create
Procere,
另一種是使用圖形化管理工具Enterprise
Manager。
用Transaction-
SQL
創建存儲過程是一種較為快速的方法,但對於初學者,使用Enterprise
Manager
更易理解,更為簡單。
當創建存儲過程時,需要確定存儲過程的三個組成部分;
所有的輸入參數以及傳給調用者的輸出參數。
被執行的針對資料庫的操作語句,包括調用其它存儲過程的語句;
返回給調用者的狀態值,以指明調用是成功還是失敗。
12.2.1
使用Enterprise
Manager
創建存儲過程
按照下述步驟用Enterprise
Manager
創建一個存儲過程:
啟動Enterprise
Manager,
登錄到要使用的伺服器。
選擇要創建存儲過程的資料庫,在左窗格中單擊Stored
Procere
文件夾,此時在右窗格中顯示該資料庫的所有存儲過程,如圖12-1
所示。
右擊Stored
Procere
文件夾,在彈出菜單中選擇New
Stored
Procere,
此時打開創建存儲過程對話框,
輸入存儲過程正文。
單擊Check
Syntax,
檢查語法是否正確。
單擊OK,
保存。
在右窗格中,右擊該存儲過程,在彈出菜單中選擇All
task,
選擇
ManagePermissions,
設置許可權,
12.2.2
用CREATE
PROCEDURE
命令創建存儲過程
通過運用Create
Procere
命令能夠創建存儲過程,在創建存儲過程之前,應該考慮到以下幾個方面:
在一個批處理中,Create
Procere
語句不能與其它SQL
語句合並在一起;
資料庫所有者具有默認的創建存儲過程的許可權,它可把該許可權傳遞給其它的用戶;
存儲過程作為資料庫對象其命名必須符合命名規則;
只能在當前資料庫中創建屬於當前資料庫的存儲過程。
用Create
Procere
創建存儲過程的語法規則如下:
CREATE
PROC
[
EDURE
]
procere_name
[
;
number
]
[
{
@parameter
data_type
}
[
VARYING
]
[
=
default
]
[
OUTPUT
]
]
[
,...n
]
[
WITH
{
RECOMPILE
|
ENCRYPTION
|
RECOMPILE
,
ENCRYPTION
}
]
[
FOR
REPLICATION
]
AS
sql_statement
[
...n
]

⑵ 求在mssql里怎麼寫des解密函數

下面是我在SQL 2008 R2中調試成功的語句,已對關鍵語句做了備注,其它的看不懂的,網路一下吧。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

--建立對稱密鑰
--CREATE SYMMETRIC KEY key1 WITH ALGORITHM=DES ENCRYPTION BY PASSWORD='123456'

OPEN SYMMETRIC KEY key1
DECRYPTION BY PASSWORD='123456' --必須與原設定口令一樣
DECLARE @str NVARCHAR(100),@Encrypted VARBINARY(MAX),@DEEncrypted varchar(8000)

SET @str=N'AABBCC' --要加密的字元串
SELECT @Encrypted=ENCRYPTBYKEY(KEY_GUID('key1'),@str)
SELECT @DEEncrypted=CAST(DECRYPTBYKEY(@Encrypted) AS NVARCHAR(100))
SELECT '加密'=@Encrypted ,'解密'=@DEEncrypted --顯示加密與解密結果
UPDATE [_TABLE1] SET mingwen = @Encrypted,mingeen = @DEEncrypted
CLOSE SYMMETRIC KEY key1

--刪除對稱密鑰
--DROP SYMMETRIC KEY key1

⑶ sql server2000 加密的存儲過程 怎麼導出

可以導入,太大,就不要用記事本或者其它編輯器打開了,
查詢分析器--連接資料庫--文件--打開--.sql文件--F5執行

不過你把數據導出為SQL文件,而且200多M,真的是。

為何不壓縮後,直接拷庫文件,或者直接備份導出呢。

如果查詢分析器不能打開的話,沒辦法,去找台好點的機子來執行,OK後,把DBF和LOG文件拷過來就可以用了,
查詢分析器--連接資料庫--文件--打開--.sql文件--F5執行,,就是這個步驟了,還有什麼詳細的,打開查詢分析器,連接你要導入的資料庫,文件,打開,選擇你那個200多M的SQL文件,F5執行,就OK了,,如果內存不足,想別的辦法去別的機子或者別的辦法,導成功後,把數據文件直接拷到你MSSQL下面的DATA裡面就可以用了。

⑷ sql怎麼自動備份並將備份文件加密

SQL SERVER 定時自動備份,並將備份文件加密壓縮(2008-11-12 11:21:48)標簽:it 分類:操作系統@資料庫
最近因為公司要升級HR系統,我被安排管理這個項目,公司為了安全起見和我簽署了保密協議,按了手印責任就大了,所以要想辦法加強系統、應用、資料庫的安全,系統無法控制,應用的安全還不錯,所以我就著手做資料庫的安全,資料庫用戶及密碼都控制了,現在需要對自動備份的數據文件進行加密,以下就是我使用到的工具、方法和代碼共享出來,供大家參考。
第一個步驟:就是讓SQL Server自動備份資料庫,通過DB維護計劃完成,這個我就不詳細說了。
第二個步驟:就是加密並壓縮備份的資料庫文件。為了在備份後,馬上進行壓縮,最方便的就是直接使用SQL命令執行壓縮,由於WinRAR可以通過命令行調用,所以我們可以使用SQL Server中的xp_cmdshell命令來執行壓縮指令,同時通過其中的一些參數指定壓縮密碼,這樣加密壓縮就實現了。(為了實現此功能,伺服器上要安裝WinRAR)
第三步驟:修改維護計劃里調用的SQL,在命令中輸入執行備份、加密、刪除備份的文件的存儲過程。

實施步驟和代碼:

1、在備份的資料庫中建立存儲過程

CREATE procere hrp_backup
--alter procere hrp_backup
WITH ENCRYPTION
AS
declare
@prefix nvarchar(100),
@datefile nvarchar(100),
@bakfile nvarchar(100),
@rarfile nvarchar(100),
@delcmd nvarchar(100),
@rarcmd nvarchar(150)
set @prefix='D:/Database_bak/' --備份文件夾
set @datefile='HRM8_DBBAK_'+cast(Year(GetDate()) as varchar(4))+cast(Month(GetDate()) as varchar(2))+cast(Day(GetDate()) as varchar(2))
set @bakfile=@prefix+@datefile+'.bak'
set @rarfile=@prefix+''+@datefile+'.rar'
BACKUP DataBASE HRM8 TO DISK = @bakfile WITH INIT , NOUNLOAD , NAME = N'HR數據備份', NOSKIP , STATS = 10, NOFORMAT
--set @delcmd = 'del '+@prefix+ 'RAR/*.rar' --先清空RAR備份文件夾
set @rarcmd ='C:/Progra~1/WinRAR/WinRAR.exe a -ppassword -df -ep1 '+@rarfile+' '+@bakfile
-- -df壓縮後刪除文件 -ep1 從名稱中排除基本目錄
--將password改為您要設置的密碼,進行加密壓縮

--exec master..xp_cmdshell @delcmd
exec master..xp_cmdshell @rarcmd

Go
2、新建維護計劃,在Transact-SQL命令中執行以上的存儲過程。
exec hrp_backup
go

驗證調試成功。

⑸ sql存儲過程怎麼加密

語句後面加個WITH ENCRYPTION就好了,比如:

CREATEPROCEDUREdbo.AAA(
@AVARCHAR(60),
@BVARCHAR(200)OUTPUT)
WITHENCRYPTION
AS
BEGIN
--此處代碼省略100行
END

⑹ SQL Server 存儲過程的幾種常見寫法分析

一、多數指令是相同的,包括創建和修正存儲過程的指令。
二、很多細微的指令有不同,具體如下(不僅):
1 mysql支持enum,和set類型,sql server不支持
2 mysql不支持nchar,nvarchar,ntext類型
3 mysql的遞增語句是AUTO_INCREMENT,而mssql是identity(1,1)
MYSQL:create table basic(id int key auto_increment,name varchar(20));
MSSQL: create table basic(id int identity(1,1) , name varchar(20))
4 msms默認到處表創建語句的默認值表示是((0)),而在mysql裡面是不允許帶兩括弧的
5 mysql需要為表指定存儲類型
6 mssql識別符是[],[type]表示他區別於關鍵字(可選用來包含表名、欄位名),但是mysql卻是 `(重音符,也就是按鍵1左邊的那個符號)
7 mssql支持getdate()方法獲取當前時間日期,但是mysql裡面可以分日期類型和時間類型,獲取當前日期是cur_date(),當前完整時間是 now()函數
8 mssql不支持replace into 語句,但是在最新的sql20008裡面,也支持merge語法
9 mysql支持insert into table1 set t1 = 『』, t2 = 『』 ,但是mssql不支持這樣寫
10 mysql插入多行支持這樣寫 insert into tabl1 values (1,1), (1,1), (1,1), (1,1), (1,1), (1,1), (1,1) MSSQL不支持
11 mssql不支持limit語句,是非常遺憾的,只能用top 取代limt 0,N,row_number() over()函數取代limit N,M
12 mysql在創建表時要為每個表指定一個存儲引擎類型,而mssql只支持一種存儲引擎
13 mysql不支持默認值為當前時間的datetime類型(mssql很容易做到),在mysql裡面是用timestamp類型
14 mssql裡面檢查是否有這個表再刪除,需要這樣:
if
exists (select * from dbo.sysobjects where id =
object_id(N'uc_newpm') and OBJECTPROPERTY(id, N'IsUserTable')
= 1)
但是在mysql裡面只需要 DROP TABLE IF EXISTS cdb_forums;
15 mysql支持無符號型的整數,那麼比不支持無符號型的mssql就能多出一倍的最大數存儲
16 mysql不支持在mssql裡面使用非常方便的varchar(max)類型,這個類型在mssql裡面既可做一般數據存儲,也可以做blob數據存儲
17
mysql創建非聚集索引只需要在創建表的時候指定為key就行,比如:KEY displayorder (fid,displayorder)
在mssql裡面必須要:create unique nonclustered index
index_uc_protectedmembers_username_appid on dbo.uc_protectedmembers
(username asc,appid asc)
18 mysql text欄位類型不允許有默認值
19mysql的一個表的總共欄位長度不超過65XXX。
20一個很表面的區別就是mysql的安裝特別簡單,而且文件大小才110M(非安裝版),相比微軟這個龐然大物,安裝進度來說簡直就是.....
21mysql的管理工具有幾個比較好的,mysql_front,和官方那個套件,不過都沒有SSMS的使用方便,這是mysql很大的一個缺點。
22mysql的存儲過程只是出現在最新的版本中,穩定性和性能可能不如mssql。
23 同樣的負載壓力,mysql要消耗更少的CPU和內存,mssql的確是很耗資源。
24php連接mysql和mssql的方式都差不多,只需要將函數的mysql替換成mssql即可。
25mysql支持date,time,year類型,mssql到2008才支持date和time。
26變數賦值
MYsql:變數賦值SELECT @min_price:=MIN(price),@max_price:=MAX(price) FROM shop
MSsql:變數賦值SELECT @min_price=MIN(price),@max_price=MAX(price) FROM shop

三、總的來說,如果是簡單的存儲過程代碼,要修改,不會太難。如果是復雜的系統,要移植會很難很難。

⑺ mssql,mysql,sqlserver三者有何不同

mssql=sqlserver,都是Microsoft® SQL Server™,只是不同的簡稱。
mysql,是由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下產品。
兩者的區別是MSSQL是企業級資料庫,mysql是輕量級資料庫(當然也可以作為企業級資料庫,但需要購買很多其他的服務)

⑻ sql 語句大全

1、說明:創建資料庫
CREATE DATABASE database-name
2、說明:刪除資料庫
drop database dbname
3、說明:備份sql server
--- 創建 備份數據的 device
USE master
EXEC sp_admpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
--- 開始 備份
BACKUP DATABASE pubs TO testBack
4、說明:創建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根據已有的表創建新表:
A:create table tab_new like tab_old (使用舊表創建新表)
B:create table tab_new as select col1,col2… from tab_old definition only
5、說明:刪除新表
drop table tabname
6、說明:增加一個列
Alter table tabname add column col type
註:列增加後將不能刪除。DB2中列加上後數據類型也不能改變,唯一能改變的是增加varchar類型的長度。
7、說明:添加主鍵: Alter table tabname add primary key(col)
說明:刪除主鍵: Alter table tabname drop primary key(col)
8、說明:創建索引:create [unique] index idxname on tabname(col….)
刪除索引:drop index idxname
註:索引是不可更改的,想更改必須刪除重新建。
9、說明:創建視圖:create view viewname as select statement
刪除視圖:drop view viewname
10、說明:幾個簡單的基本的sql語句
選擇:select * from table1 where 范圍
插入:insert into table1(field1,field2) values(value1,value2)
刪除:delete from table1 where 范圍
更新:update table1 set field1=value1 where 范圍
查找:select * from table1 where field1 like 』%value1%』 ---like的語法很精妙,查資料!
排序:select * from table1 order by field1,field2 [desc]
總數:select count as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1
11、說明:幾個高級查詢運算詞
A: UNION 運算符
UNION 運算符通過組合其他兩個結果表(例如 TABLE1 和 TABLE2)並消去表中任何重復行而派生出一個結果表。當 ALL 隨 UNION一起使用時(即 UNION ALL),不消除重復行。兩種情況下,派生表的每一行不是來自 TABLE1 就是來自 TABLE2。
B: EXCEPT 運算符
EXCEPT運算符通過包括所有在 TABLE1 中但不在 TABLE2 中的行並消除所有重復行而派生出一個結果表。當 ALL 隨 EXCEPT 一起使用時 (EXCEPT ALL),不消除重復行。
C: INTERSECT 運算符
INTERSECT運算符通過只包括 TABLE1 和 TABLE2 中都有的行並消除所有重復行而派生出一個結果表。當 ALL隨 INTERSECT 一起使用時 (INTERSECT ALL),不消除重復行。
註:使用運算詞的幾個查詢結果行必須是一致的。
12、說明:使用外連接
A、left (outer) join:
左外連接(左連接):結果集幾包括連接表的匹配行,也包括左連接表的所有行。
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
B:right (outer) join:
右外連接(右連接):結果集既包括連接表的匹配連接行,也包括右連接表的所有行。
C:full/cross (outer) join:
全外連接:不僅包括符號連接表的匹配行,還包括兩個連接表中的所有記錄。
12、分組:Group by:
一張表,一旦分組 完成後,查詢後只能得到組相關的信息。
組相關的信息:(統計信息) count,sum,max,min,avg 分組的標准)
在SQLServer中分組時:不能以text,ntext,image類型的欄位作為分組依據
在selecte統計函數中的欄位,不能和普通的欄位放在一起;
13、對資料庫進行操作:
分離資料庫: sp_detach_db;附加資料庫:sp_attach_db 後接表明,附加需要完整的路徑名
14.如何修改資料庫的名稱:
sp_renamedb 'old_name', 'new_name'

⑼ mssql資料庫的表當中密碼是加密的43位的數字密文,請問這是什麼加密方式該如何破解呢

這是自定義的加密方式。

該如何破解:
1、暴力破解:測試用軟體測試,強行破解;
2、正常加密一個,知道密碼的,用這個替代不知道的即可;

熱點內容
硬體的演算法 發布:2024-05-03 12:34:28 瀏覽:388
支付密碼為什麼就六位 發布:2024-05-03 12:29:17 瀏覽:920
腳本找書 發布:2024-05-03 12:02:17 瀏覽:493
境外伺服器租用怎麼辦 發布:2024-05-03 11:45:34 瀏覽:943
我的世界伺服器怎麼設置到重生點 發布:2024-05-03 11:33:04 瀏覽:752
mysqllinux安裝包下載 發布:2024-05-03 11:32:07 瀏覽:934
以太演算法的幣 發布:2024-05-03 11:30:45 瀏覽:383
編譯nfs 發布:2024-05-03 11:30:40 瀏覽:432
srs搭建直播伺服器 發布:2024-05-03 11:29:53 瀏覽:133
南通哪裡有賣密碼鎖的 發布:2024-05-03 11:22:01 瀏覽:522