私有化连接到 SQL Anywhere 16 数据库
Privatize connection to SQL Anywhere 16 Database
用一台计算机连接到数据库后,我希望禁止任何其他网络连接。我的第一次尝试是修改网络数据库服务器属性(见下图)以删除 -x tcpip
参数,根据 运行 宁 dbsrv16.exe
命令时获得的帮助屏幕,该参数是对于“-x:以逗号分隔的网络驱动程序列表 运行 (TCPIP)”。
然而,即使没有这个参数,我仍然能够从另一台计算机连接。现在我回到了绘图板,但不知道实现我的目标的另一种可能方法。任何想法将不胜感激!
注意:OP 不清楚 objective 是阻止所有其他用户(即,将其变成单用户系统)还是仅阻止给定登录的其他登录尝试。如果实现的逻辑存在阻止任何人登录的错误(例如,修复逻辑),那么前者当然会很危险。
如果这是 SAP/Sybase ASE,我可能会考虑创建一个不允许二次登录的登录触发器。
因为这是 SAP/Sybase SQL 任何地方,我找不到任何对登录触发器的引用(虽然我并没有真正看到 那个很难),我想知道是否可以:
- create an event based on event_type = CONNECT
- 如果事件发现您已经登录,则不允许连接继续(不确定如何以编程方式执行此操作;是否有 disconnect() 函数调用?或者您可以发出 drop connection statement 在当前连接上?)
正如我已经提到的,如果事件中存在不允许任何人登录的逻辑缺陷,这可能很危险。[我不知道是否有办法从 SQL任何地方,或者如果某些登录可以免除基于 CONNECT 的事件... ???]
用一台计算机连接到数据库后,我希望禁止任何其他网络连接。我的第一次尝试是修改网络数据库服务器属性(见下图)以删除 -x tcpip
参数,根据 运行 宁 dbsrv16.exe
命令时获得的帮助屏幕,该参数是对于“-x:以逗号分隔的网络驱动程序列表 运行 (TCPIP)”。
然而,即使没有这个参数,我仍然能够从另一台计算机连接。现在我回到了绘图板,但不知道实现我的目标的另一种可能方法。任何想法将不胜感激!
注意:OP 不清楚 objective 是阻止所有其他用户(即,将其变成单用户系统)还是仅阻止给定登录的其他登录尝试。如果实现的逻辑存在阻止任何人登录的错误(例如,修复逻辑),那么前者当然会很危险。
如果这是 SAP/Sybase ASE,我可能会考虑创建一个不允许二次登录的登录触发器。
因为这是 SAP/Sybase SQL 任何地方,我找不到任何对登录触发器的引用(虽然我并没有真正看到 那个很难),我想知道是否可以:
- create an event based on event_type = CONNECT
- 如果事件发现您已经登录,则不允许连接继续(不确定如何以编程方式执行此操作;是否有 disconnect() 函数调用?或者您可以发出 drop connection statement 在当前连接上?)
正如我已经提到的,如果事件中存在不允许任何人登录的逻辑缺陷,这可能很危险。[我不知道是否有办法从 SQL任何地方,或者如果某些登录可以免除基于 CONNECT 的事件... ???]