设为首页 加入收藏

TOP

Derby设置密码教程
2019-09-03 03:35:24 】 浏览:22
Tags:Derby 设置 密码 教程

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

文件内容:

.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

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Derby安装,创建数据库,在Java程.. 下一篇PostgreSQL 数据库错误状态编号解..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目