博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
4.07 阻止对某几列插入
阅读量:5887 次
发布时间:2019-06-19

本文共 653 字,大约阅读时间需要 2 分钟。

问题

防止用户或是错误软件应用程序对某几列插入数据。例如,只允许某个程序向emp表中插入empno,ename,和job列
解决方案:
在表中创建一个视图,该视图只显示允许用户进行操作的列,强制所有的插入操作都通过该视图进行。
例如,创建一个只显示表emp中特定3列的视图:
create view new_emps as
    select empno, ename, job
        from emp
对只允许操作视图中三个字段的用户和程序,授权他们访问该视图,而不允许他们对表emp静心插入操作。用户可以将新的记录插入到视图new_emps中,从而创建emp表中新的记录,但是不能对视图所定义的三个字段之外的列进行操作。
讨论:
当对类似于本解决方案中的简单视图进行插入操作时,数据库服务器将插入操作转换到视图的基表。例如下面的插入语句:

insert into new_emps  (empno,ename,job) values (1, 'Jonathan', 'Editor');

会被转换为以下列的插入语句:

insert into emp  (empno,ename,job) values (1, 'Jonathan', 'Editor');

视图的插入操作是一个复杂的话题。除了最简单的视图之外,操作规则变得越来越复杂。如果想要用视图进行插入操作,必须要认真思考和理解相应数据库厂商的有关文档。

转载于:https://www.cnblogs.com/liang545621/p/7518752.html

你可能感兴趣的文章
数据库事务的四大特性
查看>>
webshell 提升 for linux
查看>>
Java游戏开发中怎样才能获得更快的FPS?
查看>>
文件搜索工具
查看>>
python3.2列表操作总结
查看>>
4.3. Summary
查看>>
SQL Server本地管理员和sa都无法访问的解决方案
查看>>
RH033(2)
查看>>
mongrel启动问题的解决方案
查看>>
Android:UI控件风格与主题、selector、Theme
查看>>
sqlserver 2000/2005 Ambiguous column error错误解决办法
查看>>
spring aop 配置
查看>>
nginx正向代理
查看>>
cloudstack4.2.1无法删除网络的故障解决办法
查看>>
PHP - 日期时间的转换
查看>>
用 Prettier 美化代码
查看>>
dynamips的前端dynagen解决CPU占用问题咯~
查看>>
解决执行脚本时爆“sqlplus: command not found”的问题
查看>>
使用SQLIO评估数据库磁盘性能
查看>>
在域中配置多元密码策略
查看>>