Microsoft SQL Server和MySQL有一个我可以查询的INFORMATION_SCHEMA表.但是,它在MS Access数据库中不存在.
有没有相同的我可以使用?
我需要获取数百个 MS Access DB 的元数据,因此我需要自动化元数据收集过程。我想查询此处描述的内容,但在查询数据库之前,我需要对MSysObjects表进行读取访问。
我不断收到以下错误:
无法读取记录;没有“MsysObjects”的读取权限。
所以我更深入地挖掘:
我已经阅读了 C# 部分中有关类似问题的文章(请参阅此处以及此一篇)。
我编写了一个简单的脚本,该脚本非常适合创建表等,但我在设置读取访问权限时遇到问题。
$ScrUsr = $(whoami)
Write-Host $ScrUsr
$cmd = "GRANT SELECT ON MSysObjects TO [$ScrUsr]"
Write-Host $cmd
Function Invoke-ADOCommand($Db)
{
$connection = New-Object -ComObject ADODB.Connection
$connection.Open("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=$db;" )
$command = New-Object -ComObject ADODB.Command
$command.ActiveConnection = $connection
$command.CommandText = $cmd
$rs = $command.Execute()
$connection.Close()
}
$Db = "C:\Temp\test1.accdb"
Invoke-ADOCommand -db $Db
Run Code Online (Sandbox Code Playgroud)
执行脚本引发以下错误原因:
无法打开 Microsoft Office Access 数据库引擎工作组信息文件。
我怎样才能允许读取权限MSysObjects?