点击关注上方“SQL数据库开发”,
设为“置顶或星标”,第一时间送达干货
SQL Server的只读账号是针对某个具体的数据库,设置的方法很简单:
进入Sqlserver Management Studio(MSSQL客户端)
选择安全性->登录名->右键新建登录名
在常规里输入用户名和密码
在"用户映射"里“映射到此登录名的用户”选择该用户可以操作的数据库
在“数据库角色成员身份”里选择"db_datareader",
这样一个只读用户就创建完成了。


INSERT INTO Teacher VALUES('04','马六');

CREATE TRIGGER trReadOnly_Teacher ON Teacher INSTEAD OF INSERT,UPDATE,DELETE AS BEGIN RAISERROR( 'tblEvents table is read only.',16, 1 ) ROLLBACK TRANSACTION END
(提示:可以左右滑动代码)
创建完成后,我们再往Teacher里面写数据或删数据
INSERT INTO Teacher VALUES('05','赵七');DELETE FROM Teacher TID='04';

disable trigger trReadOnly_Teacher on Teacher
--创建文件组READ_ONLY_TBLSALTER DATABASE School ADD FILEGROUP [READ_ONLY_TBLS]GO ALTER DATABASE School ADD FILE (NAME =N'School_readonly_tables',FILENAME = N'D:\Temp\SchoolReadOnly.ndf' ,SIZE =2048KB ,FILEGROWTH = 1024KB) TO FILEGROUP [READ_ONLY_TBLS]
SELECT * INTO #Teacher FROM TeacherDROP TABLE Teacher
CREATE TABLE Teacher(TID VARCHAR(10),TName varchar(100))ON [READ_ONLY_TBLS]INSERT INTO TeacherSELECT * FROM #Teacher--将数据库的文件组设为只读ALTER DATABASE School MODIFY FILEGROUP[READ_ONLY_TBLS] READONLY
下面我们试着往Teacher里面插入数据:
INSERT INTO Teacher VALUES('05','赵七');

DENY INSERT, UPDATE, DELETE ON tblEvents TO TestDENY INSERT, UPDATE, DELETE ON tblEvents TO Public
CREATE VIEW V_SCAS SELECT SID,CID,Score FROM SCUNION ALLSELECT '0', '0',0 WHERE 1=0
当我们要删除视图中的数据时
DELETE FROM V_SC WHERE score=30.0

——End——
后台回复关键字:1024,获取一份精心整理的技术干货
后台回复关键字:进群,带你进入高手如云的交流群。
推荐阅读
这是一个能学到技术的公众号,欢迎关注
点击「阅读原文」了解SQL训练营
后台回复关键字:1024,获取一份精心整理的技术干货
后台回复关键字:进群,带你进入高手如云的交流群。
推荐阅读
点击「阅读原文」了解SQL训练营文章转载自SQL数据库开发,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




