線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1212
推到 Plurk!
推到 Facebook!

如何讓SQL Server 2000的MDF不被SQL Enterprise Manager所附加??

 
alan01
一般會員


發表:4
回覆:4
積分:1
註冊:2003-05-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-07-06 18:35:12 IP:220.130.xxx.xxx 訂閱

請教各位先進:

真的沒辦法讓SQL Server 2000的MDF不被SQL Enterprise Manager所附加嗎??

由於程式發行後,客戶端執行MSDE,在正常情況下,客戶端若不是透過程式,是無法看到資料庫(MDF)結構及其資料表內容;但若客戶若裝了SQL Enterprise Manager,便能輕而易舉看到MDF內所有資料,甚至修改其資料表內容。

找了很多討論(例如:http://www.delphibbs.com/delphibbs/dispq.asp?lid=2883075),也問了許多人,但答案都是不可能做到保護MDF不被SQL Enterprise Manager所附加(除非自行對資料表加密),真的是這樣嗎?所以請教各位,是否有其他看法,謝謝。

baby2321
初階會員


發表:52
回覆:165
積分:48
註冊:2005-06-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-07-07 00:02:45 IP:211.161.xxx.xxx 未訂閱

真的沒辦法讓SQL Server 2000的MDF不被SQL Enterprise Manager所附加嗎??

-----------不恢复数据库 如何实现异地数据库移植? 或者 让别人远程访问你的数据库

alan01
一般會員


發表:4
回覆:4
積分:1
註冊:2003-05-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-07-07 07:10:55 IP:220.130.xxx.xxx 訂閱

感謝 baby2321的回答,不過我想可能在下描述的不夠清楚,我在稍微說明一下我遇到的問題。
當程式及資料庫(假定為ABC.Mdf)發行至客戶端時,我們希望客戶端的使用者不是毫無限制地
可以利用SQL Enterprise Manager附加及開啟資料庫(ABC.Mdf);最主要的問題在於,我已利用
'Sp_Password ''OldPwd'','ANewPwd'',''sa''' 修改sa帳號的密碼;
情況一:若利用SQL Enterprise Manager附加在遠端電腦上的ABC.Mdf時,若使用者不知道sa / ANewPwd
則無法附加該資料庫。

情況二:若使用程式的用戶新安裝SQL Enterprise Manager,且資料庫(ABC.Mdf)亦放置在同一台電腦時,
此時,新安裝的SQL Enterprise Manager中預設的sa帳號便可附加資料庫(ABC.Mdf),
而程式的使用者就算不知道sa / ANewPwd,附加後亦可以對此資料庫擁有管理者權限。

在下的問題在於:當情況二發生時,如何要求使用者必須輸入 sa / ANewPwd ,才可以附加資料庫。

baby2321
初階會員


發表:52
回覆:165
積分:48
註冊:2005-06-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-07-07 11:08:06 IP:211.161.xxx.xxx 未訂閱
情況二的话 可否考虑重新设定数据库连接 即通过记录用户输入的SA和对应密码来重新连接数据库 OK的话就连上 不是的就无法连上
alan01
一般會員


發表:4
回覆:4
積分:1
註冊:2003-05-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2006-07-07 12:26:01 IP:220.130.xxx.xxx 訂閱


===================引 用 文 章===================
情況二的话 可否考虑重新设定数据库连接 即通过记录用户输入的SA和对应密码来重新连接数据库 OK的话就连上 不是的就无法连上

============================

非常感謝baby2321您的再次回覆,您的回答啟發了在下新的想法:

在上例中,如果資料庫(ABC.Mdf)能夠透過Store Procedure知道目前登入sa的用戶密碼,當發現密碼不對時,能夠自行透過Store Procedure 自行卸離資料庫(ABC.Mdf),我想就可以解決這個問題。

但這樣的想法,真的能夠透過Stroe Procedure 達成嗎?我想我會試試,若baby2321有更新想法,也希望您能再次熱心教導,在下萬分感謝。

baby2321
初階會員


發表:52
回覆:165
積分:48
註冊:2005-06-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2006-07-07 12:45:11 IP:211.161.xxx.xxx 未訂閱

如果資料庫(ABC.Mdf)能夠透過Store Procedure知道目前登入sa的用戶密碼,當發現密碼不對時,能夠自行透過Store Procedure 自行卸離資料庫(ABC.Mdf),我想就可以解決這個問題

这个发现密码不对 删除数据库的方法 我想应该是可以的

可以在检测到数据库连接不正确时 考虑使用这种方法以保护数据库不被非法访问

不过 我觉得只要数据库在客户端那里 总有办法实现非法访问的 呵呵~

sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#7 引用回覆 回覆 發表時間:2006-07-10 01:00:43 IP:219.81.xxx.xxx 未訂閱
login 的帳號跟密碼,是儲存在 master database 中,並不是儲存在 user database 中
所以你要防止 MDF 檔被未經授權的附加,是不可能的
假如要防止資料庫被未經授權的使用,還是將資料加密吧
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
系統時間:2024-05-17 11:21:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!