[SqlServer01]-数据库表及数据操作控制
有时候我们希望某些表的数据不能被删除,可以使用下面的触发器。 Create trigger [dbo].[trg_del] on [dbo].LogInfo 但需要注意?truncate table LogInfo 命令依然会正确执行,因为truncate 不会触发触发器,不会写日志,所以无法回滚,使用时要谨慎。 有时候我们需要灵活指定一些用户可以删除和修改数据表结构,未指定的用户则不能做这些操作,可以使用下面的触发器 CREATE TRIGGER TR_Safety_Table? 关于数据库或表的权限其实可以通过角色,权限来控制,下面是常用的一些基本语句,写在这里备忘。 --登陆、用户与权限 --删除登陆 --exec sp_droplogin 'test' --新建登陆 exec sp_addlogin @loginame = N'test',@passwd = '123456',? @defdb = N'TestDB',? @deflanguage = N'Simplified Chinese',? @sid = NULL,? @encryptopt = NULL? GO --删除用户 --exec sp_dropuser 'test' exec sp_adduser 'test' --授权 GRANT SELECT,INSERT,UPDATE,DELETE ON LogInfo TO test --收回权限 revoke DELETE on LogInfo from test; --拒绝权限 deny DELETE on LogInfo TO test; --授予角色权限 --exec sp_addrolemember 'db_owner','test' --列出全部表名 --select name from sysobjects where xtype = 'U' order by name (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |