首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Navision优雅地处理sql-server权限。

使用Navision优雅地处理sql-server权限。
EN

Stack Overflow用户
提问于 2010-01-25 12:26:04
回答 2查看 2.3K关注 0票数 1

背景

我正在创建一个应用程序(称为MyApp),该应用程序必须从Navision处理的Server数据库中读取数据。Navision用户应该能够使用我的应用程序,而无需修改数据库中的权限。

Navision对权限的处理似乎在应用层。它在不将权限存储在数据库中的情况下执行权限检查。

问题

当与数据库同步时,Navision覆盖数据库中的用户、权限和其他相关对象,因此创建DB用户并仅使用它的正常方法将无法工作。

可能解决办法

我认为最合适的解决方案是在Active-Directory中创建一个MyApp角色,授予对DB的必要权限,并将该角色添加到所有用户。

我不知道该怎么做,也不知道是否可能。欢迎其他解决方案或建议,但请仅建议可以从ActiveDirectory或Navision内部管理的解决方案。

服务器是运行Navison 5的SQL server 2008服务器,客户端是Navision 6,我在WindowsServer2K8中使用。

编辑:

我的应用程序是一个机箱创建和设计应用程序。它需要读出客户的名称和I,以及items表中的一些项,这就是我需要这个功能的原因。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-25 17:09:29

通常,跳过NAV层并直接读写DB是不建议的,因为您绕过了存储在表中的所有NAV业务逻辑,并在NAV中报告对象。

您的应用程序打算做什么(如果您不能得到具体的广泛的笔画)和使用NAV外接程序或数据端口是可行的?

票数 1
EN

Stack Overflow用户

发布于 2010-02-14 15:11:25

如果在NAV中使用增强的安全模型,则用户权限将同步到Server。但是,这些SQL权限映射到Server中的应用程序角色,而不是用户的登录名。如果使用标准安全模型,所有用户都映射到单个SQL应用程序角色,该角色是超级用户(安全性较低)。

如果希望使用(即通过创建)访问Server中的数据,则应该使用CFront API (通过SDK安装)。如果您正在使用NAV 2009 web服务也是一个选项。

如果要直接访问Server,则必须自己使用Server管理权限。如果您创建一个SQL脚本来授予权限,那么很容易恢复NAV在同步登录期间可能删除的任何内容。

不能像您所描述的那样从Active授予SQL权限。相反,您必须将Active Directory组映射到Server登录或NAV Windows登录(取决于您是决定直接访问SQL还是通过受支持的NAV )。注意:与角色关联的权限分别在SQL或NAV中进行管理,而不是在AD中进行管理。

从管理角度来看,您可以简单地从此Active组中添加和删除用户。如果您使用NAV增强的安全模型,AD组中的每个用户也必须在Windows登录中有一个条目,并且无论何时进行更改,都必须同步登录。这种轻微的不便是本机数据库的后遗症。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2132166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档