Sql 限制更新列
是否可以限制在不使用触发器的情况下更新SQL中的列?如果是,怎么做?需要查询吗 附言: 我是说,我有一张桌子Sql 限制更新列,sql,sql-server,Sql,Sql Server,是否可以限制在不使用触发器的情况下更新SQL中的列?如果是,怎么做?需要查询吗 附言: 我是说,我有一张桌子 CREATE TABLE MYBUDGET.tbl_Income ( [IncomeID] INT NOT NULL IDENTITY(1,1), [IncomeCatID] INT NOT NULL, [IncomeAmnt] MONEY NOT NU
CREATE TABLE MYBUDGET.tbl_Income
(
[IncomeID] INT NOT NULL IDENTITY(1,1),
[IncomeCatID] INT NOT NULL,
[IncomeAmnt] MONEY NOT NULL,
[IncomeCurrencyID] INT NOT NULL,
[ExchangeRateID] INT NOT NULL,
[IncomeAmnt_LKR] MONEY NOT NULL,
[AddedOn] DATETIME NOT NULL,
[Remark] VARCHAR(250),
)
我需要允许用户只更新[ExchangeRateID]和[IncomeAmnt_LKR]字段。无法更新所有其他字段。仅插入。使用表创建视图并隐藏所需的列..并向用户授予访问该视图的权限
CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
使用表创建一个视图并隐藏所需的列..并向用户授予访问该视图的权限
CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
从该表创建一个视图,然后隐藏所需的列,同时允许用户访问该视图从该表创建一个视图,然后隐藏所需的列,同时允许用户访问该视图用于阻止更新。e、 g
DENY UPDATE ON
MYBUDGET.tbl_Income
(
[IncomeID],
[IncomeCatID],
[IncomeAmnt] ,
[IncomeCurrencyID] ,
[AddedOn] ,
[Remark]
)
TO Mary, John, [Corporate\SomeUserGroup]
仍应考虑所有权链接如何超越DunyEng/P>>P>用于块更新。e、 g
DENY UPDATE ON
MYBUDGET.tbl_Income
(
[IncomeID],
[IncomeCatID],
[IncomeAmnt] ,
[IncomeCurrencyID] ,
[AddedOn] ,
[Remark]
)
TO Mary, John, [Corporate\SomeUserGroup]
仍应考虑所有权链接如何超越DysYEng/P>< P>这是权限。
根据康拉德·弗里克斯的回答,你拒绝更新专栏 但是,db_owner/dbo和sysadmin/sa将忽略这些内容,因此您需要确保权限模型是正确的 如果您有写入表的视图或存储过程,那么如果相同的DB用户同时拥有代码和表,则也不会检查权限。这被称为 我提到这一切是因为两天前还有一个问题如果基于权限的方法失败了,并且您不能/不会更改它,那么您需要使用触发器,它归结为权限 根据康拉德·弗里克斯的回答,你拒绝更新专栏 但是,db_owner/dbo和sysadmin/sa将忽略这些内容,因此您需要确保权限模型是正确的 如果您有写入表的视图或存储过程,那么如果相同的DB用户同时拥有代码和表,则也不会检查权限。这被称为 我提到这一切是因为两天前还有一个问题
如果基于权限的方法失败,并且您不能/不会更改它,那么您需要使用触发器如何限制?禁止更新,或者限制为一组值?如何限制?禁止更新,或者限制为一组值?这不会阻止授权用户更新基础表中的列,它只是阻止未授权用户查看这些列。这不会阻止授权用户更新基础表中的列,它只是阻止未经授权的用户查看这些列。根据另一个建议视图的答案,这并不阻止授权用户更新基础表中的列,这是OP想要阻止的。根据另一个建议视图的答案,这不会阻止授权用户更新基础表中的列,这是OP想要阻止的。如果方法处于触发器中,这将是正确的答案!如果进近处于触发状态,这将是正确答案!