开发者社区> 问答> 正文

如何锁定用户的MS-SQL DB,但仍然可以通过ODBC访问它?

我有一个正在通过ODBC连接访问的ms-access应用程序和ms-sql db。我试图迫使我的用户仅通过应用程序部分来更新数据,但是我不在乎他们是直接读取数据还是通过自己的自定义ms-access数据库读取数据(他们将其用于创建临时报告)。

我正在寻找的是一种使数据仅在使用我分发给他们的已编译.mde文件的情况下才可编辑的方法。我知道我可以使数据对一般人群只读,对某些用户可编辑。

有没有一种方法可以让ms-sql仅当他们通过我的罐头mde访问数据时才使数据可编辑?

想过,是否有一种方法可以让ms-access以其他用户身份登录数据库(或在连接后更改登录名)?

@Jake, 是的,它正在使用表格。我想做的就是在启动板/主菜单窗体弹出时让它切换用户一次。

@Peter, 这确实是我要去的方向。我还不确定如何切换到第二个ID。我并不担心密码会被窃听,用户都是内部用户,并且都在内部局域网上。如果他们可以嗅探该密码,那么他们当然可以嗅探我的特权ID。

@一般而言,没人知道, 现在它的安全性还不清楚。我为s使用了特殊的.mdb进行报告,这使他们可以读取数据,但不能更新数据。他们不知道有关通过ODBC连接重新链接到表的信息。稍多一些具有ms-access / DB文化素养的用户可以通过我在几秒钟内完成的工作-并且有些人认为自己是DBA,因此他们最终会弄清楚。

展开
收起
心有灵_夕 2019-12-27 10:06:25 883 0
1 条回答
写回答
取消 提交回答
  • 为了解决Linux系统连接MSSql Server的问题,微软为Linux系统提供了连接MSSql Server的ODBC官方驱动。通过官方驱动,Linux程序可以方便地对MSSql Server进行访问。

    官网提供了三个版本的驱动,分别用于以下发行版的Linux系统:

    64bit Red Hat Enterprise Linux 5

    64bit Red Hat Enterprise Linux 6

    64bit SUSE Linux Enterprise 11 Service Pack 2

    (实测 64bit CentOS 6.4 和 64bit CentOS 7.1 可以安装使用64bit Red Hat Enterprise Linux 6版本的ODBC驱动)

    安装配置过程可以通过以下步骤完成:

    1. 下载安装包

    Red Hat 5/6:https://www.microsoft.com/en-us/download/details.aspx?id=36437

    SUSE 11:http://www.microsoft.com/en-us/download/details.aspx?id=34687

    1. 安装unixODBC 2.3.0

    以red hat 6版本为例

    tar xzf msodbcsql-11.0.2270.0.tar.gz cd msodbcsql-11.0.2270.0 ./build_dm.sh (这个文章似乎漏了一步,因为命令行有提示Run the command 'cd/tmp/unixODBC.30130.2651.301/unixODBC-2.3.0;make install' to install the driver manager)

    1. 安装Microsoft ODBC Driver 11 for SQL Server on Linux

    ./install.sh install 4. 通过命令行连接到数据库服务器

    安装完驱动后就可以通过驱动自带的命令行工具测试连接了:

    sqlcmd -S 192.168.1.10 -U sa -P sa -d master -Q 'select "Hello World"' 假如连接成功,该命令就会输出“Hello World”的查询结果

    1. 配置unixODBC数据源

    sqlcmd命令除了可以通过指定地址、用户名密码连接数据库外,还可以通过指定数据源名称连接数据库。数据源可以通过unixODBC所提供的odbcinst命令进行配置:

    1). 建立模版配置文件 template.ini,内容如下

    复制代码 [DataSourceName] Driver = ODBC Driver 11 for SQL Server Server = 192.168.1.10 UID = sa PWD = sa Database = master 复制代码 2). 导入配置

    odbcinst -i -s -l -f template.ini 执行完之后,可以再次通过sqlcmd命令工具来测试连接

    sqlcmd -S DataSourceName -Q 'select "Hello World"' 该命令和前面的直接指定IP地址和用户名密码的命令得到同样的结果

    1. 通过PHP连接到数据库服务器

    该例子是通过修改CodeIgniter 3.0.0的mssql driver,把所有原mssql_* API 替换成odbc_* API,让所有数据库操作都通过ODBC连接进行,同时也复用了原CodeIgniter框架对mssql的支持。项目代码托管在github上:https://github.com/ratzhou/CodeIgniter。以下是使用修改后的CodeIgniter框架通过ODBC连接MSSql Server

    2019-12-27 16:34:08
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载