laravel6.20访问mssql,windows php环境可查找、更新记录,linux php环境可查找记录,但不可更新。报The UPDATE permission was denied on the object
1. 运行环境
1). 当前使用的 Laravel 版本?
6.20.44
2). 当前使用的 php/php-fpm 版本?
PHP 版本:本地:7.4, 生产:7.2
php-fpm 版本:本地:7.4, 生产:7.2
3). 当前系统
本地:win11, 生产:ubuntu 1804
4). 业务环境
本地和生产:单机
5). 相关软件版本
mssql: 2012, os:win10
2. 问题描述?
本地和生产环境均安装了pdo_sqlsrv和sqlsrv模块,并安装了ms odbc.
本地环境可以访问远程mssql,select 和update执行成功。(说明账户有访问权限)
生产环境可以访问远程mssql,select语句执行成功。(同本地mssql账户)但在执行update时,报权限错误,代码如下:ORM数据库操作
$rec = REbayInventory::where('localsku', 'jwr-0052')->update(['qoh' => 19]);
出错信息为:Illuminate\Database\QueryException : SQLSTATE[42000]: [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]The UPDATE permission was denied on the object ‘Inventory’, database ‘Ambitronic’, schema ‘dbo’. (SQL: update [Inventory] set [qoh] = 19 where [localsku] = jwr-0052)
最终结果:账号在windows执行有update权限,但在linux下执行没有update权限。当用sa账号时,两种环境均可正常执行。为什么权限和客户端的OS相关,我也不知道