ldb文件到底派什么用场得?数据库教程

时间:2023年04月09日

/

来源:mxm12034

/

编辑:本站小编

收藏本文

下载本文

下面是小编整理的ldb文件到底派什么用场得?数据库教程,本文共5篇,欢迎您阅读,希望对您有所帮助。本文原稿由网友“mxm12034”提供。

篇1:.ldb文件到底派什么用场得?数据库教程

.ldb文件到底派什么用场得?

本文参考地址:support.microsoft.com/default.aspx?kbid=208778

摘要:

.ldb文件在多用户环境下是非常重要得,该文件被 MS Jet DB Engine V4.0 用来确定被共享的数据库中哪条记录被锁定以及被谁锁定

更多信息:

.ldb 文件是由共享数据库的使用者自动创建以及删除得。.LDB 文件建立并存储计算机名、用户名以及放置扩展域锁的。.LDB 文件一般与 .MDB 同名,并且与 .MDB 文件在相同目录,在 .MDB 文件被打开时建立并锁定。举个例子,如果你打开 c:\\northwind.mdb 文件后 c:\\northwind.ldb 文件会自动被建立并被锁定。

当最后一个用户关闭共享数据库时 .ldb 文件会被自动删除。但是当用户没有正常关闭数据库或者数据库已经被标记为损坏,那么 .LDB 文件不会被自动删除,因为 .LDB 文件中存储着数据库损坏时谁正在使用该数据库。

权限问题:

记得要给予 .LDB 文件所在的文件夹一定的权限。

如果你准备共享一个数据库,该 .MDB 文件应该被放置在一个用户拥有读取、写入、建立、删除权限的目录中。即使你要求每个用户有不同的文件权限(比如,只读或者可读写),所有能够共享该数据的用户对该目录都应该拥有读取、写入、建立的权限,但是你可以分配用户对某个 .MDB 文件只拥有只读权限。

注意:如果用独占方式打开某个数据库,那么 MS JET DB 将不会建立 .LDB 文件,此时用户对目录的权限只要求有读取和写入两个权限即可。

.ldb 文件的内容:

MS JET DB ENGINE 会为每个以共享方式打开数据库的使用者在 .LDB 文件中创建一个条目,每个条目的大小是 64 字节。前面 32 字节保存计算机名,后面 32 字节保存用户名,

JET DB ENGINE 支持的最大用户数是 255,因此 .LDB 文件的大小不会超过 16 KB。

当一个用户关闭一个共享数据库时,该用户在 .LDB 文件中的条目不会立即被删除,可是该条目会在下一个用户打开这个数据库时被覆盖。这也就意味着你不能通过 .LDB 文件来唯一确定谁是某个数据库的当前使用者。

.LDB 文件的使用方法:

JET DB ENGINE 使用 .LDB 文件中的信息来确定谁锁定了数据,谁正在写入被其他人锁定的数据。如果 JET DB ENGINE 发现有其他用户的锁定冲突,它会读取 .LDB 文件以获取计算机名与用户名谁锁定了文件或者记录。

在多数锁定冲突情况下,你会在存储记录时得到一个 “写入冲突”的提示并且取消你所做的修改。在有些情况下你会得到如下提示:

Couldn't lock table ; currently in use by user  on computer .

注意:上述关于 .LDB 文件的信息与数据库文件无关。如果一个 .LDB 文件损坏,数据库文件仍然能够工作正常。但是写入冲突的提示消息中这个部分你可能会看见一串不知所云的文字。

参考:

在 Access  中,你可以用 VBA 来输出某个数据库的所有登陆用户的信息。

关于此代码请参考:

198755 ACC2000: Checking Who Logged into Database with Jet UserRoster

support.microsoft.com/default.aspx?kbid=198755

原文地址:support.microsoft.com/default.aspx?kbid=208778

www.access911.net 站长收藏

篇2:如何增强Access文件的安全性数据库教程

对于个人网站来说,受到建站条件的制约,Access数据库成了广大个人网站站长的首选,然而,Access数据库本身存在很多安全隐患,攻击者一旦找到数据库文件的存储路径和文件名,后缀名为“.mdb”的Access数据库文件就会被下载,网站中的许多重要信息会被一览无余,非常可怕。当然,大家采用了各种措施来加强Access数据库文件的安全,但真的有效吗?

存在漏洞的保护措施

流传最为广泛的一种Access数据库文件保护措施,是将Access数据库文件的后缀名由“.mdb”改为“.asp”,接着再修改数据库连接文件(如conn.asp)中的数据库地址内容,这样一来即使别人知道数据库文件的文件名和存储位置,也无法进行下载。

这是网上最流行的一种增强Access数据库安全的方法,而且还有强大的“理论基础”。

因为“.mdb”文件不会被IIS服务器处理,而是直接将内容输出到Web浏览器,而“.asp”文件则要经过IIS服务器处理,Web浏览器显示的是处理结果,并不是ASP文件的内容。

但大家忽略了一个很重要的问题,这就是IIS服务器到底处理了ASP文档中的哪些内容。这里笔者提醒大家,只有ASP文件中“”标志符间的内容才会被IIS服务器处理,而其他内容则直接输出到用户的Web浏览器。你的数据库文件中包含这些特殊标志符吗?即使有,Access也可能会对文档中的“”标志符进行特殊处理,使之无效。因此后缀为“.asp”的数据库文件同样是不安全的,还是会被恶意下载。

面对蛊惑人心的理论,以及众人的附和,笔者也开始相信此方法的有效性,

但事实胜于雄辩,一次无意间的试验,让笔者彻底揭穿了这个谣言。

笔者首先将一个名为“cpcw.mdb”的数据库文件改名为“cpcw.asp”,然后上传到网站服务器中。运行flashGet,进入“添加新的下载任务”对话框,在“网址”栏中输入“cpcw.asp”文件的存储路径,然后在“重命名”栏中输入“cpcw.mdb”。进行下载后,笔者发现可以很顺利地打开“cpcw.mdb”,而且它所存储的信息也被一览无余。这就充分说明了单纯地将数据库文件名的后缀“.mdb”改为“.asp”,还是存在安全隐患。

没有最“安全”,只有更“安全”

任何事情都不是绝对的,因此增强Access数据库文件的安全也只是相对的。毕竟Access只能用于小型数据库的解决方案,它存在很多先天不足,特别是在安全方面。

我们所采用的各种方法,也只是相对来说增强了Access数据库文件的安全,并不能实现绝对的安全,毕竟先天不足的问题是无法解决的。下面笔者为大家介绍一些方法,虽然不能完全防止别人下载Access数据库文件,但只要你善用它们,Access数据库文件就会更安全。

方法一:数据库文件名应复杂

要下载Access数据库文件,首先必须知道该数据库文件的存储路径和文件名。如果你将原本非常简单的数据库文件名修改得更加复杂,这样那些“不怀好意”者就要花费更多的时间去猜测数据库文件名,无形中增强了Access数据库的安全性。

很多ASP程序为方便用户使用,它的数据库文件通常都被命名为“data.mdb”,这大大方便了有经验的攻击者。如果我们将数据库文件名修改得复杂一些,他人就不易猜到,如将“data.mdb”修改为“1rtj0ma27xi.mdb”,然后修改数据库连接文件中的相应信息。这样Access数据库就相对安全一些。此方法适合于那些租用Web空间的用户使用。

篇3:单表导入/导出文件数据库教程

/*--实现数据导入/导出的存储过程

可以实现导入/导出 指定表 到文本文件

支持自定义行/列分隔符

--邹建 .07--*/

/*--调用示例

导出调用示例

--导出指定表,这里指定导出表:地区资料

exec file2table 'zj','','','c:\\zj.txt','xzkh_new..地区资料',@rowsplit=','

导入调用示例

--导入指定表,这里指定导入表:地区资料

exec file2table 'zj','','','c:\\zj.txt','xzkh_sa..地区资料',0

--*/

if exists(select 1 from sysobjects where name='File2Table' and objectproperty(id,'IsProcedure')=1)

drop procedure File2Table

go

create procedure File2Table

@servername varchar(200) --服务器名

,@username varchar(200)  --用户名,如果用NT验证方式,则为空''

,@password varchar(200)  --密码

,@filename varchar(1000) --目录名+文件名

,@tbname varchar(500)='' --数据库..表名

,@isout bit=1    --1为导出(默认),0为导入

,@fdsplit varchar(10)='\\t' --字段分隔符,默认为制表符

,@rowsplit varchar(10)='\\n' --记录分隔符,默认为回车符

as

declare @sql varchar(8000)

set @sql='bcp “'+@tbname

+case when @isout=1 then '” out' else '“ in' end

+' ”'+@filename+'“ /c' +' /S”'+@servername

+case when isnull(@username,'')='' then ''

else '“ /U”'+@username end

+'“ /P”'+isnull(@password,'')+'“'

+' /t”'+@fdsplit+'“'

+' /r”'+@rowsplit+'“'

exec master..xp_cmdshell @sql

go

篇4:转储控制文件头数据库教程

控制

转出控制文件必须在数据库打开(OPEN)或者安装(MOUNT)的状态下进行,

1.     连接数据库

E:\\>sqlplus ”/ as sysdba“

SQL*Plus: Release 9.2.0.1.0 - Production on 星期五 5月 14 08:52:03

Copyright (c) 1982, , Oracle Corporation. All rights reserved.

连接到:

Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production

With the Partitioning, OLAP and Oracle Data Mining options

JServer Release 9.2.0.1.0 - Production

2.     确定跟踪文件的目录:

sys@TEST_LUNAR>show parameter dump

NAME                                TYPE       VALUE

------------------------------------ ----------- ------------------------------

background_core_dump                string     partial

background_dump_dest                string     e:\\oracle\\admin\\test\\bdump

core_dump_dest                      string     e:\\oracle\\admin\\test\\cdump

max_dump_file_size                  string     UNLIMITED

shadow_core_dump                    string     partial

user_dump_dest                      string     e:\\oracle\\admin\\test\\udump

sys@TEST_LUNAR>

sys@TEST_LUNAR>host dir E:\\oracle\\admin\\test\\udump

驱动器 E 中的卷是 ORACLE

卷的序列号是 707A-C50C

E:\\oracle\\admin\\test\\udump 的目录

2002-01-13 21:59      

         .

2002-01-13 21:59      

         ..

0 个文件             0 字节

2 个目录 2,444,267,520 可用字节

3.     转储控制文件头

sys@TEST_LUNAR>alter session set events 'immediate trace name controlf level 1';

会话已更改。

sys@TEST_LUNAR>host dir E:\\oracle\\admin\\test\\udump

驱动器 E 中的卷是 ORACLE

卷的序列号是 707A-C50C

E:\\oracle\\admin\\test\\udump 的目录

2002-01-13 21:59      

         .

2002-01-13 21:59      

         ..

2004-05-14 09:06                 949 test_ora_1364.trc

1 个文件           949 字节

2 个目录 2,444,263,424 可用字节

sys@TEST_LUNAR>

4.     解读dump出来的控制文件头(level 1)信息

以下是test_ora_1364.trc的内容(共23行):

(1)    Dump file e:\\oracle\\admin\\test\\udump\\test_ora_1364.trc

(2)      Fri May 14 09:06:10 2004

创建跟踪文件的时戳

(3)      ORACLE V9.2.0.1.0 - Production vsnsta=0

数据库当前的版本是V9.2.0.1.0

注意:与(18)条目的区别

(4)      vsnsql=12 vsnxtr=3 ???

(5)      Windows Version 5.0 Service Pack 4, CPU type 586

当前OS信息

(6)      Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production

(7)      With the Partitioning, OLAP and Oracle Data Mining options

(8)      JServer Release 9.2.0.1.0 - Production

(9)      Windows 2000 Version 5.0 Service Pack 4, CPU type 586

(10)  Instance name: test

实例名称为test

(11)  Redo thread mounted by this instance: 1

这说明这是一个单实例数据库,当前线程被实例1装载

(12)  Oracle process number: 13

目前Oracle的进程数为13,这个信息同select count(*) from v$process的结果相同:

sys@TEST_LUNAR>select count(*) from v$process;

COUNT(*)

----------

13

sys@TEST_LUNAR>

(13)  Windows thread id: 1364, image: ORACLE.EXE

这条信息反应了前台进程中可执行部分的信息,注意在windows平台上Oracle作为一个ORACLE.EXE进程来运行,

所以,这里前台进程中的可执行部分是:ORACLE.EXE;创建该跟踪文件的线程号为1364(十进制数)。

如果在UNIX中,这部分信息会类似下面的信息:

Image: $1$DUA41:[V8ROOT.RDBMS]SQLPLUS.EXE;8

即该跟踪文件是由前台进程SQLPLUS.EXE创建的,其操作系统进程号(PID)为8

(14)  *** 2004-05-14 09:06:10.000

创建跟踪文件的时戳

(15)  *** SESSION ID:(10.9) 2004-05-14 09:06:10.000

创建控制文件的session的SID 和SERIAL#,本例中,SID是10,SERIAL#是9,这部分信息可以同v$session视图中看到的一样。

sys@TEST_LUNAR>select sid,serial# ,username from v$session;

SID   SERIAL# USERNAME

---------- ---------- ------------------------------

1         1

2         1

3         1

4         1

5         1

6         1

7         1

8         1

9         1

10         9 SYS

已选择10行。

sys@TEST_LUNAR>

(16)  DUMP OF CONTROL FILES, Seq # 2929 = 0xb71

说明这是一个控制文件的转储,Seq #是控制文件的序列号,它意味着控制文件的更新次数,也可以看作是控制文件的版本。2929是10进制表示的,0xb71是十六进制表示的。(这行信息同21行给出的信息是一样的含义)

*********以下内容是通用文件头(generic file header)信息*************

通用文件头信息对于数据库中所有的数据文件,控制文件和日志文件都应当是一样的。

(17) FILE HEADER:

(18)  Software vsn=153092096=0x9200000, Compatibility Vsn=134217728=0x8000000

指出了创建控制文件时的Oracle的版本,这里是0x9200000,即,9.2.0。

Compatibility Vsn指出了兼容版本为0x8000000,即,8.0。

注意:与(3)条目的区别

(19)  Db ID=1750352942=0x6854442e, Db Name='TEST1'

Db ID是数据库标识号,Oracle根据数据库的创建时间和数据库名按照一定的算法得出的;Db Name为数据库名,本例中数据库名为TEST1。

(20)  Activation ID=0=0x0

(21)  Control Seq=2929=0xb71, File size=228=0xe4

Control Seq同16行信息的含义;

File size指出了控制文件的物理大小,其单位为块,

即,控制文件的实际大小=File size的值 * 数据块的大小(DB_BLOCK_SIZE)

(22)  File Number=0, Blksiz=8192, File Type=1 CONTROL

控制文件的文件号为0,类型为1;

Blksiz对应于操作系统数据块的大小,在Windows平台上为8192K

(如果是UNIX操作系统,Blksiz的值为512)???

**************************通用文件头结束****************************

(23) *** END OF DUMP ***

篇5:如何修改MySQL日志文件位置?数据库教程

MySQL日志文件相信大家都有很多的了解,MySQL日志文件一般在:/var/log/mysqld.log,下面就教您修改MySQL日志文件位置的方法,供您参考,

今天需要改MySQL日志文件的位置,发现在/etc/my.cnf中怎么也改不了。

后来发现MySQL日志位是指定的:

[root@localhost etc]# ps auxgrep mysqld

root    11830 0.5 0.0  4524 1204 pts/0   S   03:03  0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/data/mysql --socket=/var/lib/mysql/mysql.sock --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid

mysql   11890 3.7 0.1 40456 9076 pts/0   Sl  03:03  0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/data/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --port=3306 --socket=/var/lib/mysql/mysql.sock

root    11909 0.0 0.0  3908  664 pts/0   S+  03:03  0:00 grep mysqld

chkconfig --list发现是chkconfig on指定的,天是

vim /etc/init.d/mysqld得知这里的已经配置

get_mysql_option mysqld datadir ”/var/lib/mysql“

datadir=”$result“

get_mysql_option mysqld socket ”$datadir/mysql.sock“

socketfile=”$result“

get_mysql_option mysqld_safe log-error ”/var/log/mysqld.log“

errlogfile=”$result“

get_mysql_option mysqld_safe pid-file ”/var/run/mysqld/mysqld.pid“

mypidfile=”$result\"

更改这里应该就行了

Oracle 9i 约束条件数据库教程

全检索的应用数据库教程

PL/SQL Developer数据库教程

右外连接数据库教程

解决Oracle被锁定的妙招数据库教程

下载ldb文件到底派什么用场得?数据库教程(合集5篇)
ldb文件到底派什么用场得?数据库教程.doc
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
点击下载本文文档