权限越高,责任也越大。没有正式环境的数据库恰恰是保护了自己,防止自己不小心犯错给公司或者客户造成不必要的损失。
还记得之前有个运维就是用了自己写的一个小工具,连上了客户正式环境数据库,执行了锁表操作,导致医院系统无法正常使用,造成重大损失,自己也因此承担相应的法律责任。
作为程序员来说不见得非要保存正式环境的相关信息,虽然说方便,但是很容易测试正式不分,导致误操作。到时候别为了解决一个bug,丢了一个大西瓜,得不偿失。职场上你做了多少贡献,加了多少班,领导不一定会认可,但是造成了重大损失,你的责任跑不了。
所以即使解决某个问题,使用了正式的账户,用完之后也要清理掉正式信息,不要给自己留下隐患。
996的同时也要记得保护好自己,不要面向监狱编程
一般开发人员是不允许拥有数据库操作权限的。因为软件是你开发的,一旦给了你数据库权限,增加了系统数据的泄露篡改的风险。正规的公司一般会有专门的DBA团队来负责维护数据库环境。如果生产开发需要,程序员要获取线上的数据,需要提交工单到DBA团队获取临时权限。
这样的好处:
数据作为当今互联网、IT行业的核心资产,必须得到重视。不合规的管理流程必然导致各种安全风险,很多小公司开发兼任DBA的职责,我就遇到一个开发离职后使用原公司的数据库连接篡改数据牟利,造成了重大的损失。也遇到不专业的数据库管理造成数据库被拖库、被黑客锁表勒索。所以一定要重视数据库的管理,权限尽量保证合规性。
数据库分环境的,1生产库,2测试库,3开发库,4本地库。
1生产库的管理权只在运维,全体开发无任何权限(版本升级提供脚本升级数据库),原则是动技术的不碰生产数据,碰数据的不懂业务和技术;
2测试库管理权限在运维和测试人员,开发无权限,提供升级版本给测试(或者运维);
3开发库权限在运维和项目经理,开发人员提供脚本升级;
4本地库是开发人员本机数据库,自己随便玩。
综上,如果是生产测试库,开发无权限很正常,说明管理到位
这才是正常的。在公司里,都只会有高级别的一个或几个以及DBA才有数据库权限。
如果是你工作的项目需要访问db,才会给你分配某个数据库的权限,往往是只读,需要其他权限需要额外申请。
数据是公司业务的基石,要是谁都可以上去操作一把,那就乱套了。万一被删除了被篡改了被窃取了呢,而且公司也有义务保护好客户的资料。
作为一个已经工作多年的程序员,我来回答一下你这个问题。
数据库,一般软件开发中都会用到,关于它的权限问题是这样的:
一个公司的一个软件产品,其实在不同的研发上线的不同阶段,数据库是独立的。这个很好理解,开发环境程序员可以随便改。线上环境可不是谁都有权限的。
也就是说开发阶段,测试阶段,上线之前,上线之后,这些数据库都是独立的。作为程序员,你不会有所有这些数据库的权限,因为一旦上线产品的数据库,改错了的话,这是很有很大风险的,会为客户带来非常大的损失。
但比如测试环境的数据库,作为一个开发开发人员正常来说,你有权限去改动,但是你也不能够不通知测试人员的情况下,你自己擅自去改动它。那么测试环境有问题需要你来解决的时候,要和测试同事协商好,你要改什么东西。因为测试的同事呢,他有他的测试任务,你不能阻碍他的工作。
那么产品上线后的环境呢?只能看不能动!重要事情说三遍,你只能提供解决办法。除非非常非常特殊的情况,但是我在过的公司流程管理很严格,这一步除非大大领导要求,而且要非常谨慎。
说白了就是谁的地盘谁做主。
你是程序员做开发的,那么你就在开发的数据环境上,去做你的开发和测试。数据库如果是你搭的你随便改。
有的公司呢,还会有专门的数据组,那么DBA的这个组呢,他们有更高的一些数据库管理的权限。所以一般来说,那么这种情况下,你的权限就是在你应用程序所控制的那些表的所有操作上了。比如下图,不同用户名有不同操作权限的:
不同的公司,这个数据库管理的方式也是不一样的,仅从我的经历上来回答这个问题。如果更多疑问可以继续探讨。
我是工作多年的大数据攻城狮一枚,相关问题可以在评论区留言,或者私信我!
意味着你们公司还算有点安全意识,意味着这很正常。17年因为运维一行命令,我们通宵两周修数据。。。
程序员没有数据库权限,意味着工作职责不需要
常规程序从开发到上线,要经过开发环境、测试环境、验证环境。这些环境中,只有开发环境的数据库权限,程序员有正当理由申请。其他环境应该可以单独处理的。
很高兴回答你的问题,如果某个程序员在公司没有数据库的权限我认为这不是什么大问题,也没有必要去把这个问题放大,因为对于很多公司而言,数据库都是有单独的开发岗位。相反在中小型公司如果没有数据库的权限说明你的能力还不足以让公司把数据库的权限交给你。
顾名思义,数据库就是存放数据的地方,而不同的企业对于数据库的管理不一,但无一例外的是数据库对于任何一个客户来说都是极其重要的内容,曾扬言删库跑路之语也是来源于此,可见数据库的重要性。
对于很多大厂而言,开发项目都有专门的数据库开发人员,这个岗位就是会根据需求把用到的表全部都创建好,然后把数据库的账号信息发给你,而你需要做的功能就是从代码层连接数据库实现增删改查,如果遇到新增字段也是需要找到对应的开发人员,这样做的目的就是为了保证人尽其才,让专业的人做专业的事。
我主要是做外包工作,截止目前为止开发的项目也是不尽其数,每一款项目都会有一个数据库,像我们这种工作性质就没有分的那么清楚,程序员是肯定要会基本的数据库操作,所以往往数据库的最高权限都是在我们自己的手中。对于考核期的员工而言,一般是不会把数据库的操作权限给到他们的,毕竟数据库这个东西对于公司来说是非常重要的,也是要对人品非常的信任才可以,如果万一出了问题将是灾难性的。
我是小程序软件开发,每天分享开发过程中遇到的知识点,如果对你有帮助的话,帮忙点个赞再走呗,非常感谢。
往期文章分享:
php常见的后台内容管理系统,非常适合初级程序员的建站系统
小程序wx.chooseImage上传图片,支持相册选择图片或使用相机拍照
一般正式环境的数据库权限是严格管控的,正式环境的数据库由专门的人员进行操作,比如DBA 、技术leader 。数据是一个企业的核心价值,数据的丢失和泄露对于一个企业来说都是致命的,所以一般人员不允许操作的,假如操作失误也是要承担责任的。数据库需要经常备份,增量备份、全量备份都要做,目的是尽可能的规避风险。
我觉得一个程序员在公司没有数据库权限意味着安全,规范,合理。
所谓安全,可以说保护数据安全,公司安全,员工安全。
数据被篡改了,公司的客户可能要炸毛,轻则一顿投诉,重则按照合同问责,追究责任。
数据泄露了,公司是第一责任体,轻则被问责,重则无穷大,好巧不巧公司还在做着要命的工作,什么政府系,银行系,公共服务系,我觉得公司多半会凉凉。
程序员本员,即使不是故意的,不小心搞坏了部分数据,或者拷贝了部分数据,也是直接问责,要知道数据虽然由公司制作的软件生产,但是所有权归属于客户,所谓数字资产这就是其中一类,公司作为管家肯定是不能同意把数据随意开放给你的。
所谓规范,即从项目合同,法律法规,行业规范出发对数据保存访问的要求。
每个项目对数据的保密要求是不同的,或者需要专门的保密员,比如军工系,政府系,只有他们才能解除传数据用的介质,或者需要DBA或者保密委员会之类的专门数据交换处理部门,最不济也得按照权限分配和读写账号,一般只让用只读得账号查看数据,反正我是没有见过可以数据裸奔的项目。
所谓合理,从程序员本身的工作出发,职业习惯应该具有的数据权限范围。
我们猜想直接拥有数据库权限,你可能会做的事儿:
有功能改动,数据需要更新,写个脚本刷一下。
看看线上数据库数据,确定功能正常不正常。
有个bug造成了错误数据,写个sql改过来
运营想找什么样数据,让我帮忙导出来
其实,一切的直接操作数据库都可以用功能上线来解决,只不过麻烦一些,流程会多一些。一些需求可能写个脚本提交为工单,让DBA进行审查,把问题修复的时间线拉长,影响范围扩大,我认为这种代价付出也是必要的。
我要保证我的所有操作都留下了我操作的痕迹,留足了证据,万一在这段时间有什么异常出现,有人指认是由于我动了数据库造成,我能拿出什么证据来自证清白呢。
从我自己的日常工作来说,我是非常抵触要数据库权限的,基于以上我的考虑,离生产数据有多远就离多远,我不想做贩卖数据的生意,也不想担数据泄露的责任,如果我的bug导致数据出错,我光明正大的修复认责,做一个专业的程序员。
页面更新:2024-04-24
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号