Gostaria de ajustar as permissões de uma tabela do SQL Server para que apenas SELECT
e INSERT
os comandos sejam possíveis para os usuários. A execução de todos os outros comandos (por exemplo UPDATE
, DELETE
, , ...) não deve ser possível.
Eu tentei o seguinte:
USE MyDB
GO
CREATE TABLE dbo.TestTable
(
colA INT,
colB INT
);
CREATE ROLE my_role;
GRANT SELECT, INSERT ON OBJECT::dbo.TestTable TO my_role;
DENY UPDATE, DELETE ON OBJECT::dbo.TestTable TO my_role;
ALTER ROLE my_role ADD MEMBER user1;
Mas as permissões não parecem ter mudado. Tudo ainda é possível. Eu li que as cadeias de propriedade podem ser a causa, mas mesmo se eu criar um novo esquema com público como proprietário e criar a tabela neste esquema, é o mesmo que acima.
Como posso definir permissões de tabela que funcionarão?