Derby設置密碼教程


方法一:    配置derby.propertites文件:

文件內容:

derby.connection.requireAuthentication=true
derby.authentication.provider=BUILTIN
derby.user.username=password

將username和password改成你所需要的。我先設username為sa(這里會有問題,后面會講),密碼為password

把這個文件放到你的數據庫所在的目錄下。

然后打開cmd,進入數據庫所在目錄,運行ij工具,如果你不輸入用戶名和密碼,只是輸入如下語句:

Connect ‘jdbc:derby:testDataType;create=true’;

ij會提示你’ connection authentication failure occurred. Reason: Invalid authentication..’

所以,要運行以下語句:

Connect ‘jdbc:derby:testDataType;create=true;user=sa;password=password’;

接下來,如果你要對數據庫進行操作,可能會出問題,試試select些數據,oops!


http://www.joyzhong.com/wp-content/gallery/my-life/1.jpg

名為‘sa’的數據庫模式不存在。因為,derby在用戶登錄之后,會默認使用與用戶名相同的模式,如果該模式不存在,就會報錯。有兩種方法解決這個問題:
第一,    看下你的數據庫存在的模式是什么名稱?我的是app,那么創建一個名為app的用戶,登錄后直接就對app模式數據庫進行操作了。

http://www.joyzhong.com/wp-content/gallery/my-life/2.jpg

 

第二,    不改用戶名,直接用sa登錄,登錄之后運行這條語句:set schema app;再進行操作就OK了。無圖無真相,看圖:

http://www.joyzhong.com/wp-content/gallery/my-life/7.jpg

別高興得太早,讓我們跑到另一個路徑下執行ij,悲慘的事情即將發生:

http://www.joyzhong.com/wp-content/gallery/my-life/3.jpg

看,我現在是在c盤根目錄下運行ij,沒有用用戶名和密碼就直接可以查詢數據庫了。

怎么辦呢?

下面講第二種方法設置derby數據庫密碼。

方法二:    為某一個數據庫設定密碼。

前面講的配置derby.properties文件是為derby數據庫配置系統設置。也就是在數據庫所在目錄下,如果還存在其他數據庫,他們也將會用derby.properties設置的用戶名和密碼來登錄。如果在非derby.properties所在目錄下運行ij,derby.properties將不再生效,ij將使用derby默認的embed模式的配置,也就是不需要用戶名和密碼即可查詢數據庫。

這不是我想要的(為什么要這樣設計呢?我百思不得其解,如果是這樣,別人只要知道你數據庫的路徑,然后在其他路徑下用ij就可以隨便改你的數據庫了)。我希望,不管在哪里運行ij,都必須使用我設置好的用戶名和密碼來查詢數據庫。

請用ij連到數據庫,然后運行以下語句:

CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(‘derby.authentication.provider’,
‘BUILTIN’);
CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(‘derby.connection.requireAuthentication’,
‘true’);
CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(‘derby.user.username’,
‘password’); ————這里username和password改成你的就可以了,下次登錄時則要輸入這里設置的。
CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(‘derby.database.fullAccessUsers’,
‘username’); ————這個username和前面那個一樣
CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(‘derby.database.defaultConnectionMode’,
‘noAccess’);

退出ij,再運行:

http://www.joyzhong.com/wp-content/gallery/my-life/4.jpg

這下不輸入用戶名和密碼訪問不了了吧。那么輸入試試:

http://www.joyzhong.com/wp-content/gallery/my-life/5.jpg

大功告成!不管你將數據庫放到哪里,也不管你在哪里運行ij,都必須用用戶名和密碼來查詢了。

如果要密碼:還是運行上面的語句,把密碼改成新的,再次運行數據庫的時候就會要求輸入新密碼。

刪密碼,也就是改回不用用戶名和密碼登錄:
只運行這一句:

CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(‘derby.connection.requireAuthentication’,
‘false’);

全部操作可在cmd內運用ij工具完成。用這種方法,可以不用derby.propertites文件了。但是必須牢記用戶名和密碼。

轉自:http://www.joyzhong.com/archives/643


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM