本地系统帐户下嵌入的Firebird权限问题
我正在创建一个使用嵌入式 Firebird 数据库的 NTService 应用程序。当我配置以管理员帐户运行的服务时,它工作正常。但是当我作为默认本地系统帐户运行服务时,出现以下错误。
没有对 TABLE XXXX 进行读取/选择访问的权限
这是为什么?我相信 Firebird 单个 sql 文件中没有系统表等。而且Windows xp没有类似linux的文件权限。请帮忙。
问候
J
I am creating a NTService Application which use an Embeded Firebird database. When i configure the service run as Administrator account, It works ok. But when i run service as default Local System Account, I get below error.
no permission for read/select access to TABLE XXXX
Why is that ? I belive there is no system tables or etc in Firebird single sql file. And Windows xp dont have linux like file permissions. Please help.
Regards
J
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
虽然嵌入式版本不会对用户进行身份验证(不会根据 security2.fdb 检查用户名和密码),但它仍然会检查用户的 SQL 权限。这意味着您仍然必须为访问数据库时使用的用户名和/或角色授予适当的用户权限。它可能适用于管理员帐户,因为在版本 2.1 中,管理 Windows 组的成员默认映射到 SYSDBA(因此拥有所有数据库的所有权限)。这在版本 2.5 中发生了变化,您现在必须手动配置它(请参阅 发行说明)。
While the embedded version doesn't authenticate users (doesn't check the username and password against security2.fdb) it still checks the SQL privileges of the user. This means that you still have to grant proper user rights to the username and/or role you're using when accessing the database. It probably worked for the Administrator account because in version 2.1, members of administrative Windows groups were mapped to SYSDBA by default (and thus had all rights on all databases). This changed in version 2.5, you now have to manually configure this (see release notes).