我的 webapp 需要在具有五个模式的 SQL 2008 数据库上读取、写入(INSERT、UPDATE、DELETE)和执行存储过程。
我创建了一个通过 SQL 进行身份验证的用户,并通过 Security -> Logins -> (Username) Properties -> User Mappings 授予用户 db_datareader、db_datawriter 和 db_procedureexec。然后我将应用程序配置为使用用户名和正确的密码连接到数据库,但在尝试执行存储过程时,出现此错误:
The EXECUTE permission was denied on the object '(stored procedure name)', database '(new database)', schema '(schema 1)'.
在数据库的安全部分找到这个用户,我将其设为数据库中五个模式的所有者。
我是否授予了太多特权?应用程序级用户是否应该成为模式所有者才能读取、写入和执行过程?