2009年3月5日 星期四

「n詞酷」線上英語學習網站

加入書籤: HemiDemi MyShare Baidu Google Bookmarks Yahoo! My Web Del.icio.us Digg technorati furl

3838088096

「n詞酷」(http://www.nciku.com.tw/

這個網站是有「韓國Google」之稱的NHN所設立,NHN也是目前韓國最大的網路公司,而「n詞酷」網站是韓國NHN為進軍華文線上語言學習市場所設立的網站。因此在網站介面上,有繁體中文網站、簡體中文網站、英語網站,如果想學英文查字典可以透過繁簡的中文網站,輸入英文單字,如果是外國人想查中文單字,也可透過英語介面,輸入中文單字,就可以了解該字的詞意。

例如,某位外國人不知道中文的「車水馬龍」是什麼意思?在「n詞酷」英文介面網站輸入這四個字,查出來的英文意思為「heavy traffic」,這樣一來「n詞酷」網站平台就成了華人與外國人相互學習語言的平台了。

「n詞酷」網站除了提供英漢/漢英字典查詢之外,還可以查詢「情境對話」、「詞酷問答」、「詞酷百科」等功能。例如使用者可輸入「吃飯」來查詢相關的情境對話,網站就會秀出有關如何點餐的英語情境對話、或者是要怎麼告訴餐廳人員打包的英語等等,甚至在網站的左欄也陳列出已預設各種情境對話的分類,如果覺得以上情境對話分類都是使用者所需,使用者也可以自行創建英語情境對話的例子,提供給其它使用者。

而「詞酷問答」功能,則是可讓使用者在網站上提問相關的英語問題,例如英語裡的「同花順」該怎麼說?網友們或網站的工作人員就會熱情在站上回答相關的問題。

「詞酷百科」功能就像是圖解英語字典,每一個單字旁邊就會有一張該單字的圖片對照圖,讓使用者在學習語言時能夠更容易了解與記憶。

另外還有「我的n詞酷」功能,讓使用者可以記錄過去自己在網站上查詢單字、例句等記錄,並且還可以收錄個人的單字本,並可與其他網友分享你的單字學習歷程,例如就有網友在網站上分享「學習英語必會的2000個單字」、「英檢初級單字」等等。

「n詞酷」網站更在最近開始提供英語發音功能,而且還可以自由選擇美國腔或英國腔兩種不同腔調的發音。

「n詞酷」網站為了擴大使用,也開始提供手機版的n詞酷網站,使用者只要在手機上的瀏覽器輸入網址http://m.nciku.com.tw/,就可以具有英漢字點的查詢工能,仿如把手機當成語言學習字典一樣。

2009年2月26日 星期四

免費中文的Windows系統資訊檢測工具SIW

加入書籤: HemiDemi MyShare Baidu Google Bookmarks Yahoo! My Web Del.icio.us Digg technorati furl

SIW 全名 System Information for Windows,這是一款很有名的Windows專用電腦系統資訊檢測工具,它非常小巧、非商業使用免費、多語系而且擁有免安裝的版本,你只需要帶著一個1.5MB大小的檔案,就可以隨時搜索目前這台電腦的軟體、硬體和網路資料,不僅顯示的細節頗為完整,並且還有豐富的報表列出功能,另外 SIW 也提供了一些實用的系統小工具。可以產出 CSV、HTML、TXT 或 XML 格式的報表。

siw-03

SIW:http://www.gtopala.com/

到 SIW 的軟體下載頁面後,選擇第三項的「Multilanguage without Installer」,就可以獲得擁有繁簡中文語系的免安裝版本。直接執行後,到上方選單的【Tools】→【Options】→「General」頁面,將「Language」選擇成你想要的語系即可。

來看看 SIW 一些比較特別的部份。

  • 在【檔案】→【顯示檔案資訊】中,SIW 可以針對特定的AVI、Divx、DOC、EXE、DLL檔案進行檢測,並且告訴你該檔案的詳細資訊
  • 在【軟體】→【Licenses】中,可以告訴你目前這台電腦中Windows、Office等微軟產品的授權序號
  • 在【軟體】→【機密】中,則可以顯示你系統中自動儲存記錄的帳號密碼,例如Windows登入、螢幕保護程式密碼、Firefoxm與IE自動紀錄的帳號密碼等等,而且在瀏覽器自動儲存的帳號密碼中,還可以顯示出他們對應的網站網址。
  • 在【工具】→【Eureka!】中,會開啟一個密碼檢測視窗,按住滑鼠左鍵拖曳該視窗左上角的放大鏡,便可以去察看某些被特殊符號隱藏的密碼資料;不過我試驗的時,大概只有IE瀏覽器、Outlook等程式裡才能夠看出被隱藏的密碼。

siw-02

  • 【工具】→【中央處理器和記憶體使用率】,可以即時顯示目前CPU和記憶體的使用情形,如果你願意玩玩看的話,還可以按下﹝Burn﹞來操一下你的CPU負載能力(不過沒事別亂試的好)。

2009年1月14日 星期三

nslookup 使用說明

加入書籤: HemiDemi MyShare Baidu Google Bookmarks Yahoo! My Web Del.icio.us Digg technorati furl

有些時候, user 可能會想要手動查詢 DNS 上一些資料, 或者是要看看 DNS 是否有問題, 此時我們最常用的工具就是 nslookup 了, 基本上 nslookup 會根據 /etc/resolv.conf 的內容去找到所要使用的 local DNS server.

使用說明

打入 nslookup 命令後, 會看到 > 提示符號, 此時打 ? 就會出現 nslookup 說明
Default Server:  sun4.ee.ncku.edu.tw
Address:  140.116.72.14

>?

$Id: nslookup.help,v 8.4 1996/10/25 18:09:41 vixie Exp $

Commands:       (identifiers are shown in uppercase, [] means optional)
NAME            - print info about the host/domain NAME using default server
NAME1 NAME2     - as above, but use NAME2 as server
help or ?       - print info on common commands; see nslookup(1) for details
set OPTION      - set an option
    all         - print options, current server and host
    [no]debug   - print debugging information
    [no]d2      - print exhaustive debugging information
    [no]defname - append domain name to each query
    [no]recurse - ask for recursive answer to query
    [no]vc      - always use a virtual circuit
    domain=NAME - set default domain name to NAME
    srchlist=N1[/N2/.../N6] - set domain to N1 and search list to N1,N2, etc.
    root=NAME   - set root server to NAME
    retry=X     - set number of retries to X
    timeout=X   - set initial time-out interval to X seconds
    querytype=X - set query type, e.g., A,ANY,CNAME,HINFO,MX,PX,NS,PTR,SOA,TXT,WKS,SRV,NAPTR
    port=X      - set port number to send query on
    type=X      - synonym for querytype
    class=X     - set query class to one of IN (Internet), CHAOS, HESIOD or ANY
server NAME     - set default server to NAME, using current default server
lserver NAME    - set default server to NAME, using initial server
finger [USER]   - finger the optional USER at the current default host
root            - set current default server to the root
ls [opt] DOMAIN [> FILE] - list addresses in DOMAIN (optional: output to FILE)
    -a          -  list canonical names and aliases
    -h          -  list HINFO (CPU type and operating system)
    -s          -  list well-known services
    -d          -  list all records
    -t TYPE     -  list records of the given type (e.g., A,CNAME,MX, etc.)
view FILE       - sort an 'ls' output file and view it with more
exit            - exit the program, ^D also exits
>^D

Interactive/Noninteractive (交談式/非交談式)

執行 nslookup 時可以直接在後面跟著我們要查詢的資料, 那麼 nslookup 會直接把結果傳回來
如果只打入 nslookup [enter], 則進入交談模式, 出現提示符號 >, 此時 nslookup 會等待 user input command.

tung@traveler:~> nslookup www.yohoo.com
Server:  sun4.ee.ncku.edu.tw
Address:  140.116.72.14

Non-authoritative answer:
Name:    yohoo.com
Address:  216.116.98.143
Aliases:  www.yohoo.com

tung@traveler:~> nslookup
Default Server:  sun4.ee.ncku.edu.tw
Address:  140.116.72.14

> www.yohoo.com
Server:  sun4.ee.ncku.edu.tw
Address:  140.116.72.14

Non-authoritative answer:
Name:    yohoo.com
Address:  216.116.98.143
Aliases:  www.yohoo.com

Authoritative/Non-Authoritative

在查詢時有時會出現 Non-authoritative answer, 代表這個答案是由 local DNS 的 cache 中直接讀出來的, 而不是 local DNS 向真正負責這個 domain 的 name server 問來的.

常用的一些 option/command

1. set all
可以得知目前 nslookup 的一些 default 設定值
tung@traveler:~> nslookup
Default Server:  sun4.ee.ncku.edu.tw
Address:  140.116.72.14

> set all
Default Server:  sun4.ee.ncku.edu.tw
Address:  140.116.72.14

Set options:
  nodebug         defname         search          recurse
  nod2            novc            noignoretc      port=53
  querytype=A     class=IN        timeout=5       retry=4
  root=a.root-servers.net.
  domain=ee.ncku.edu.tw
  srchlist=ee.ncku.edu.tw

2. server dns_server_ip
表示將內定的 local DNS 換成另一部 server
Ex: server 140.116.2.6

3. set type=any
表示在查詢某個 domain name 時, 將和這個 domain name 的一些相關資料一併顯示出來
> set type=any
> www.yohoo.com
Server:  sun4.ee.ncku.edu.tw
Address:  140.116.72.14

Non-authoritative answer:
www.yohoo.com   canonical name = yohoo.com

Authoritative answers can be found from:
yohoo.com       nameserver = ns1.netgateway.net
yohoo.com       nameserver = ns2.netgateway.net
ns1.netgateway.net      internet address = 216.116.98.7
ns2.netgateway.net      internet address = 216.116.98.8

在上面的這個例子, 我們除了知道 www.yohoo.com 的 IP 外, 我們還得知了 yohoo.com 是由哪部 name server 在負責的. 因此如果想要知道 www.yohoo.com 真正在 yohoo.com 上的記錄是如何, 而不要有 local DNS cache 中傳回的資料, 我們可以配合使用 server 這個 command 將 default local DNS 改為負責 yohoo.com 的 DNS, 然後再查詢一次
> server 216.116.98.7
Default Server:  ns1.netgateway.net
Address:  216.116.98.7

> www.yohoo.com
Server:  ns1.netgateway.net
Address:  216.116.98.7

Name:    yohoo.com
Address:  216.116.98.143
Aliases:  www.yohoo.com

4. set type=ptr
本來要由 IP 反查 domain name時, 在直接打 IP 就行了, 但如果已經下了 type=any 的話, 要由 IP 反查時就沒那麼方便了, 此時 IP 4 個數字要倒著寫, 最後還要加上 in-addr.arpa. 以查 140.116.72.219 為例, 要輸入的就是 219.72.116.140.in-addr.arpa
tung@traveler:~> nslookup
Default Server:  sun4.ee.ncku.edu.tw
Address:  140.116.72.14

> 140.116.72.219
Server:  sun4.ee.ncku.edu.tw
Address:  140.116.72.14

Name:    garfield.ee.ncku.edu.tw
Address:  140.116.72.219

> set type=any
> 140.116.72.219
Server:  sun4.ee.ncku.edu.tw
Address:  140.116.72.14

*** sun4.ee.ncku.edu.tw can't find 140.116.72.219: Non-existent host/domain
> 219.72.116.140.in-addr.arpa
Server:  sun4.ee.ncku.edu.tw
Address:  140.116.72.14

219.72.116.140.in-addr.arpa     name = garfield.ee.ncku.edu.tw
72.116.140.IN-ADDR.ARPA nameserver = sun4.ee.ncku.edu.tw
sun4.ee.ncku.edu.tw     internet address = 140.116.72.14

另外一個辦法就是先下 set type=ptr 或 set type=a 命令, 脫離 type=any 模式, 再進行 IP 反查 domain name 的 command
> set typr=ptr
> 140.116.72.219
Server:  sun4.ee.ncku.edu.tw
Address:  140.116.72.14

219.72.116.140.in-addr.arpa     name = garfield.ee.ncku.edu.tw
72.116.140.IN-ADDR.ARPA nameserver = sun4.ee.ncku.edu.tw
sun4.ee.ncku.edu.tw     internet address = 140.116.72.14

5. ls domain
這個命令是要求 name server 將其負責的 zone 內容 show 出來, 這個動作相當於 name server 的整份記錄從 server 端傳回給 nslookup 這個程式, 這種傳回整個 zone 的動作叫作 zone transfer
> set type=any
> ee.ncku.edu.tw
Server:  cs.ncku.edu.tw
Address:  140.116.2.6

ee.ncku.edu.tw  nameserver = sun4.ee.ncku.edu.tw
ee.ncku.edu.tw  preference = 1, mail exchanger = eembox.ee.ncku.edu.tw
ee.ncku.edu.tw  internet address = 140.116.72.15
ee.ncku.edu.tw
        origin = sun4.ee.ncku.edu.tw
        mail addr = root.sun4.ee.ncku.edu.tw
        serial = 1999033001
        refresh = 3600 (1H)
        retry   = 900 (15M)
        expire  = 3600000 (5w6d16h)
        minimum ttl = 3600 (1H)
ee.ncku.edu.tw  nameserver = sun4.ee.ncku.edu.tw
sun4.ee.ncku.edu.tw     internet address = 140.116.72.14
eembox.ee.ncku.edu.tw   internet address = 140.116.72.15
> ls ee.ncku.edu.tw
Default Server:  cs.ncku.edu.tw
Address:  140.116.2.6

> [sun4.ee.ncku.edu.tw]
$ORIGIN ee.ncku.edu.tw.
@                       1H IN A         140.116.72.15
hdlib4                  1H IN A         140.116.72.4
ds114                   1H IN A         140.116.72.114
hdlib5                  1H IN A         140.116.72.5
ds115                   1H IN A         140.116.72.115
yokoyama1               1H IN A         140.116.227.217
hdlib6                  1H IN A         140.116.72.6
ds116                   1H IN A         140.116.72.116
yokoyama2               1H IN A         140.116.227.218
ds117                   1H IN A         140.116.72.117
ds120                   1H IN A         140.116.72.120
ds118                   1H IN A         140.116.72.118
ds121                   1H IN A         140.116.72.121
ds119                   1H IN A         140.116.72.119
ds122                   1H IN A         140.116.72.122
ds123                   1H IN A         140.116.72.123
intelab01               1H IN A         140.116.227.39
.....

2008年12月29日 星期一

防止ACCESS數據庫被下載

加入書籤: HemiDemi MyShare Baidu Google Bookmarks Yahoo! My Web Del.icio.us Digg technorati furl

把 data.mdb 文件改名為 data.asp 文件後放在wwwroot目錄裏。然後在IE中輸入 data.asp 路徑後,發現 IE 顯示一片空白,右鍵->察看原始碼,跳出記事本,將內容另存為.mdb文件,用ACCESS打開,發現需要密碼, 也就是說至少文件檔頭被破壞。

然後用 Flashget 試驗下載 data.asp 文件,並另存為data.mdb 文件,發現用ACCESS 打開完好無損!看來,一些程式設計人員在開發的時候都認為,改了mdb 副檔名為 asp 就能防下載的概念,是錯的!後臺資料庫被下載對於一個asp+access 的網站來說無疑是一場慘絕人寰的災難。今天找了各方的文章,歸納一下有以下9種辦法防止資料庫被下載(歡迎補充)。

1.發揮你的想像力修改資料庫檔案名稱

不用說,這是最最偷懶的方法,但是若攻擊者通過第三方途徑獲得了資料庫的路徑,就玩完了。比如說攻擊者本來只能拿到 list 權限,結果意外看到了資料庫路徑,就可以冠冕堂皇地把資料庫下載回去研究了。另外,資料文件通常大小都比較大,所以再隱蔽的文件檔案名撐都瞞不了人。故保密性為最低。

2.資料庫名稱副檔名改為ASA、ASP等

此法須配合一些要進行一些設置,否則就會出現本文開頭的那種情況。

(1)二進制字段添加。

(2)在這個文件中加入,IIS就會按ASP語法來解析,然後就會報告500錯誤,自然不能下載了。可是如果只是簡單的在資料庫的文本或者備注字段加入<%是沒用的,因為ACCESS會對其中的內容進行處理,在資料庫裏他會以<%的形式存在,無效!正確的方法是將<%存入 OLE 對象字段裏,這樣我們的目的就能達到了。

操作方法:

首先,用notepad新建一個內容為<%的文本文件,隨便起個名字存檔。

接著,用Access打開您的資料庫文件,新建一個表,隨便起個名字,在表中添加一個OLE對象的字段,然後添加一個記錄,插入之前建立的文本文件,如果操作正確的話,應該可以看到一個新的名為”資料包”的記錄。即可。

3.資料庫檔案名稱前加"#"

只需要把資料庫文件前名加上#、然後修改資料庫連接文件(如conn.asp)中的資料庫地址。原理是下載的時候只能識別# 號前名的部分,對於後面的自動去掉,比如你要下載:http://www.pcdigest.com/date/#123.mdb(假設存在的話)。無論是 IE 還是 FLASHGET 等下到的都是http://www.test.com/date/index.htm (或 index.asp、default.jsp 等你原本在IIS設置的首頁檔名)。

另外在資料庫檔案名稱中保留一些空格也起到類似作用,由於HTTP協議對地址解析的特殊性,空格會被編碼為"%",如 http://www.test.com/date/123;456.mdb,下載的時http://www.test.com/date /123%456.mdb。而我們的目錄就根本沒有123%456.mdb 這個文件,所以下載也是無效的這樣的修改後,即使你暴露了資料庫地址,一般情況下別人也是無法下載!

4.加密資料庫

首先在選取"工具->安全->加密/解密資料庫,選取資料庫(如:employer.mdb),然後接確定,接著會出現 "資料庫加 密後另存為" 的窗口,存為:employer1.mdb。接著employer.mdb就會被編碼,然後存為employer1.mdb..要注意的是,以上的動作並不是對資料庫設置密碼,而只是對資料庫文件加以編碼,目的是為了防止他人使用別的工具來查看資料庫文件的內容。

接下來我們為資料庫加密,首先以打開經過編碼了的 employer1.mdb,在打開時,選擇 "獨佔" 方式。然後選取功能表的 "工具-> 安全->設定資料庫密碼",接著輸入密碼即可。這樣即使他人得到了 employer1.mdb 文件,沒有密碼他是無法看到 employer1.mdb的。

加密後要修改資料庫連接頁,如:

conn.open "driver={ microsoft access driver&nb sp;
(*.mdb) };uid=admin;pwd=資料庫密碼;dbq=資料庫路徑"

這樣修改後,資料庫即使被人下載了,別人也無法打開(前提是你的資料庫連接頁中的密碼沒有被泄露)。
但值得注意的是,由於Access資料庫的加密機制比較簡單,即使設置了密碼,解密也很容易。該資料庫係統通過將用戶輸入的密碼與某一固定密鑰進行"異 或"來形成一個加密串,並將其存儲在 *.mdb 文件從地址 "&H42" 開始的區域內。所以一個好的程序員可以輕松制作一個幾十行的小程序就可以輕鬆地獲得任何Access資料庫的密碼。因此,只要資料庫被下載,其資訊安全依然是個未知數。

5.資料庫放在WEB目錄外或將資料庫連接文件放到其他虛擬目錄下

如你的WEB目錄是e:\webroot,可以把資料庫放到e:\data這個文件夾裏,在e:\webroot裏的資料庫連接頁中修改資料庫連接地址為:"../data/資料庫名"的形式,這樣資料庫可以正常調用,但是無法下載的,因為它不在WEB目錄裏!這個方法一般也不適合購買虛擬空間的用戶。

6.使用ODBC資料源

在ASP等程序設計中,如果有條件,應盡量使用ODBC資料源,不要把資料庫名寫在程序中,否則,資料庫名稱將隨ASP原始碼的失竊而一同失竊,例如:

DBPath = Server.MapPath("../123/ abc/asfadf.mdb ")
conn.open "driver={ Microsoft Access Driver&nb sp;(*.mdb) };dbq="& DBPath

可見,即使資料庫名字起得再怪異,隱藏的目錄再深,ASP原始碼失密後,也很容易被下載下來。如果使用ODBC資料源,就不會存在這樣的問題 了:

conn.open "ODBC-DSN名"

,不過這樣是比較煩的,目錄移動的話又要重新設置資料源了,更方便的方法請看第7,8法!

7.添加資料庫名的如MDB的延伸副檔名對應

這個方法就是通過修改 IIS 設定來實現,適合有 IIS 控制權的朋友,但不適合購買虛擬主機用戶(除非管理員已經設定了)。這個方法我認為是目前最好的,只要修改一處,整個網站的資料庫都可以防止被下載,且無須修改原始碼即使是暴露目標地址也可以防止被下載。

我們在 IIS 屬性-->主目錄-->應用程式設定-->應用程式對應-->新增 那裏添加.mdb文件的應用解析。注意這裏所選擇的DLL(或EXE等) 似乎也不是任意的,選擇不當,這個MDB文件還是可以被下載的,注意最好不要選擇選擇 asp.dll 等。你可以自己多測試下,修改後下載資料庫,就出現 (404或500等錯誤)。

例如在執行檔輸入:c:\windows\system32\inetsrv\ism.dll

        副檔名輸入:.mdb

        限制於:GET,POST

8.使用.net的優越性

動網的木鳥就寫過一個防非法下載文件的"WBAL防盜鏈工具"。

不過那個只實現了防止非本地下載的,沒有起到真正的防下載資料庫的功能。不過這個方法已經跟5法差不多可以通過修改.NET文件,實現本地也不能下載!

這幾個方法中,只有第7和8個是統一性改的,一次修改設定後,整個網站的資料庫都可以防止下載,其他幾個就要分別修改資料庫名稱和連接文件,比較麻煩,不過對於虛擬主機的朋友也只能這樣了!

其實第6個方法應該是第5個方法的延伸,可以實現特殊的功能,但對於不支持.net的主機或者怕設定麻煩的話,還是直接用第5個方法了,而且預設情況下第6個方法,依然可以通過復制連接到同主機的論壇或留言本發表,然後就可以點擊下載了。(因為這樣的引用頁是來自同主機的)

9.利用NTFS磁區的文件權限設置

我們已經知道,ASP.NET中使用ADO.NET訪問資料庫,通過OleDb的連接可以訪問Access資料庫,我們非常常用的低端資料庫 之一。本文討論了ASP.NET中可能看到的若幹錯誤提示,從中看到Access2000和AccessXP創建的資料庫文件,在訪問出現錯誤時會出現不太相同的錯誤提示。希望對大家有所幫助。另一個要點是,希望通過此文,使大家對ASP.NET中Access資料庫文件的NTFS權限設置有所新的認識。

(一)實驗過程

為了敘述方便,舉個具體例子做個實驗:應用程序為/test,資料庫存放在D:\wwwroot\test\data\db1.mdb,我們已 經知道在ASP.NET中是以一個叫做ASPNET虛擬用戶的身份訪問資料庫的,我們需要給這個賬戶以特定的NTFS權限才能使ASP.NET程序正常運 行。

為了得到最嚴格的NTFS權限設置,實驗開始時我們給程序最低的NTFS權限:

a)D:\wwwroot\test\data\文件夾的給用戶ASPNET以如下權限:

允許
拒絕

完全控制

修改

讀取及運行
V

列出文件夾目錄
V

讀取
V

寫入

b) D:\wwwroot\test\data\db1.mdb文件本身給用戶ASPNET以如下權限:

√允許將來自父係的可繼承權限傳播給該對象

1.1:對於某個只包含有"SELECT"命令的aspx程序,上述權限設置運行時無障礙,即:上述權限已經滿足這類程序的運行了。

1.2:對於包含有"UPDATE""INSERT""UPDATE"等命令的aspx程序。

(a)如果db1.mdb是Access2000創建的資料庫,出現如下錯誤:

"/test"應用程序中的服務器錯誤。

MicrosoftJet資料庫引擎打不開文件'D:\wwwroot\test\data\'。它已經被別的用戶以獨佔方式打開,或沒有查看資料的權限。

說明:執行當前Web請求期間,出現未處理的異常。請檢查堆棧跟蹤資訊,以了解有關該錯誤以及原始碼中導致錯誤的出處的詳細資訊。

異常詳細資訊:System.Data.OleDb.OleDbException:MicrosoftJet資料庫引擎打不開文件'D:\wwwroot\test\data\'。它已經被別的用戶以獨佔方式打開,或沒有查看資料的權限。

(b)如果db1.mdb是AccessXP創建的資料庫,出現如下錯誤: "/test"應用程序中的服務器錯誤。

操作必須使用一個可更新的查詢。

說明:執行當前Web請求期間,出現未處理的異常。請檢查堆棧跟蹤資訊,以了解有關該錯誤以及原始碼中導致錯誤的出處的詳細資訊。

異常詳細資訊:System.Data.OleDb.OleDbException:操作必須使用一個可更新的查詢。

(c)原因初步分析:因為包含有"UPDATE""INSERT""UPDATE"等命令,需要對資料庫文件本身進行寫入操作,所以上述權限不能滿足此需求,我們需要進一步放開權限。

我們放開一些權限,

a) D:\wwwroot\test\data\ 文件夾不變;

b) D:\wwwroot\test\data\db1.mdb 文件本身給用戶ASPNET以如下權限;

允許
拒絕

完全控制

修改

讀取及運行
V

列出文件夾目錄
V

讀取
V

寫入
V

1.3:放開權限後繼續實驗

(a)如果db1.mdb是Access2000創建的資料庫,出現如下錯誤: "/test"應用程序中的服務器錯誤。

不能鎖定文件。

說明:執行當前Web請求期間,出現未處理的異常。請檢查堆棧跟蹤資訊,以了解有關該錯誤以及原始碼中導致錯誤的出處的詳細資訊。

異常詳細資訊:System.Data.OleDb.OleDbException:不能鎖定文件。

(b)如果db1.mdb是AccessXP創建的資料庫,沒有出現錯誤。

(c)原因初步分析:我們發現在打開Access資料庫時,同時會在所在目錄生成一個同名的*.ldb文件,這是一個Access的鎖定標記。 鑒於此,我們猜測,用戶ASPNET訪問Access資料庫時,也需要生成一個鎖定標記,而該目錄沒有允許其寫入,因此出錯。至於AccessXP創建的 資料庫為什么沒有這個錯誤,原因還不得而知。

我們進一步放開權限,

a)D:\wwwroot\test\data\文件夾  給用戶ASPNET以如下權限:

允許
拒絕

完全控制

修改

讀取及運行
V

列出文件夾目錄
V

讀取
V

寫入
V

b) D:\wwwroot\test\data\db1.mdb文件本身給用戶ASPNET以如下權限:

√允許將來自父係的可繼承權限傳播給該對象

1.4:繼續實驗,發現錯誤已解決,那么上面這個權限就是我們需要放開的"最低權限"。

(a)如果db1.mdb是Access2000創建的資料庫,我們會發現一個小問題:生成的*.ldb文件不會自己刪除,訪問後該文件依然存在,但這個問題不會影響ASP.NET的正常運行。

(b)如果db1.mdb是AccessXP創建的資料庫,沒有出現上面類似問題。

(c)原因初步分析:我們僅僅是給了ASPNET以寫入文件夾的權限,沒有給它修改的權限,所以文件一旦寫入,便無法修改其內容,*.ldb也就刪除不掉了。

如果非要解決這個問題,進一步放開權限為:

a)D:\wwwroot\test\data\文件夾給用戶ASPNET以如下權限:

允許
拒絕

完全控制

修改
V

讀取及運行
V

列出文件夾目錄
V

讀取
V

寫入
V

b) D:\wwwroot\test\data\db1.mdb 文件本身給用戶ASPNET以如下權限:

√允許將來自父係的可繼承權限傳播給該對象

1.5:附帶著,實驗另一種情形:我們把db1.mdb在Access打開編輯,同時訪問ASP.NET。

(a)如果db1.mdb是Access2000創建的資料庫,我們發現並沒有出現什麼問題。

(b)如果db1.mdb是AccessXP創建的資料庫,出現如下錯誤:&nb。

2008年11月21日 星期五

遠端桌面連線(MMC/TSMMC)

加入書籤: HemiDemi MyShare Baidu Google Bookmarks Yahoo! My Web Del.icio.us Digg technorati furl

有使用過 MMC 的朋友應該都知道它是一個蠻方便的整合管理工具,裡面可以整合許多元件,包括「遠端桌面」;但現在應該有不少網友會說,根本就沒有「遠端桌面」的嵌入元件啊;是的~因為「遠端桌面」的嵌入元件並沒有隨 OS 被安裝進來,它藏身於Windows 2003 的光碟,再加上大多數的一般使用者都用 XP,所以一直沒注意到。

兩個取得的方式:
1.Windows 2003 的光碟中 x:I386ADMINPAK.MSI
2.微軟下載 下載連結安裝完後就可以使用,有兩種啟動方式:

  • 直接在 MMC 中將「遠端桌面」嵌入。
  • 輸入 tsmmc.msc 直接啟動元件。

可管理許多的「遠端桌面連線」設定。

注意!記得要將防火牆的通訊連接埠打開,才能讓「遠端桌面連線」連進來;設預為 port 3389。

遠端桌面連線 - 實用技巧 -

加入書籤: HemiDemi MyShare Baidu Google Bookmarks Yahoo! My Web Del.icio.us Digg technorati furl

【#1】在使用「遠端桌面連線」控制「遠端桌面」時,我們可以發現我們所控制的「遠端桌面」並不是目前真正的遠端「桌面」,而是另外開啟一個使用者的登入程序;那麼要如何才能夠操作遠端目前的「桌面」咧~其實說穿是很簡單的,解答就是 /console 的參數。1.將「遠端桌面」捷徑的內容,改成 %SystemRoot%system32mstsc.exe /console。2.登入時需要和目前遠端上的使用者相同,這樣才可控制該使用者目前的「桌面」。3.此方式需要輸入「帳號、密碼」舉例來說,我習慣為每一部可以被控端建立一個捷徑,可以利用 .bat 或 .cmd 做成的批次檔來建立多個控制檔。我習慣的用法如下:%SystemRoot%system32mstsc.exe /v:192.168.1.100 /console /w:800 /h:600/v:192.168.1.100 提定要遠端電腦的名稱或 ip/console 直接登入即有的桌面作業/w:800 指定畫面寬度/h:600 指定畫面高度 (或直接用 /f 以全螢幕顯示)


【#2】亦或是使用 rdp 檔,就是直接由「遠端桌面連線」儲存的連線檔,但此方法目前無法達到 console 的效果。此方式可以不需要輸入「帳號、密碼」


【#3】像 Windows 2000 等無提供「遠端桌面連線」的 Windows 中,只要下載兩個檔案 mstsc.exe , mstscax.dll 存入同一個資料夾後,執行 mstsc.exe 即可擁有「遠端桌面連線」的功能;換個角度來看 mstsc 是可攜的喔。如何取得 mstsc.exe , mstscax.dll:1.至 M$ 網站下載 MSRDPCLI.EXE 安裝程式即可。2.Windows XP 原版光碟。3.直接在已安裝 Windows XP 的電腦中複製即何。(C:WINDOWSsystem32)


【#4】除了上述利用「捷徑、.bat、.cmd、rdp」的方式來,還可以利用 MMC (Microsoft Management Console) 來整合控管,在 MMC 中有一個嵌入的元件叫「遠端桌面」(tsmmc),只要有它基本上就能夠解決切換還有管理的問題囉

2008年11月7日 星期五

Linux免費備份還原軟體--Clonezilla「再生龍」

加入書籤: HemiDemi MyShare Baidu Google Bookmarks Yahoo! My Web Del.icio.us Digg technorati furl

Clonezilla「再生龍」是台灣國家高速網路與計算機中心自由軟體實驗室所開發出來的軟體Penguinzilla(企鵝龍)的一部分。Clonezilla本來是以網路做大量的備份/還原用的(如一次還原整間電腦教室的電腦),後來開發團隊又將功能修改成單機操作,作成免安裝的live CD,這就是Clonezilla Live。
可還原再生多種作業系統,包含Linux (ext2, ext3, ext4, reiserfs, reiser4, xfs, jfs), Mac OS (HFS+), 微軟Windows (fat, ntfs)。這些檔案系統只備份有存資料的硬碟空間,因此可以節省備份時間與硬碟空間。其他不支援的檔案系統Clonezilla採用全部複製(dd)的方式處理。

光碟版(iso檔案)的可以在這裡下載: 穩定版測試版實驗版。下載後,把該ISO檔案燒到光碟片上,就可以用它來開機。

再生龍的安裝與使用:
免安裝的單機版還原系統Clonezilla live(使用CD/USB隨身碟開機)的使用請參考Clonezilla live
適合大量備份與還原的伺服器版再生龍(Clonezilla server edition)(使用PXE網路開機)詳見DRBL

2008年9月19日 星期五

用Google Docs製作「網路問卷調查表」

加入書籤: HemiDemi MyShare Baidu Google Bookmarks Yahoo! My Web Del.icio.us Digg technorati furl

如果你想作一個網路問卷調查表給大家填寫,該怎麼做比較快呢?Google Docs另外提供一個相當簡單、好用的網路問卷調查表,做好之後就不用再到處郵寄Word檔或Excel檔囉,直接把網址給對方,填好之後我們馬上可以在網路上看到填表數、回應內容與簡單的統計唷!

※網址:http://spreadsheets.google.com/newform

如果你想把問卷整個嵌入到網頁或部落格中,可以在預覽時,點選右上角的〔已內嵌〕,並將程式碼貼上到你的部落格或網站中,即可讓大家在你的網站中很方便的填寫問卷。

image

狀態廣告

EasyReadMore