内容详情 你的位置: 首页 > 新闻动态 > 公司新闻
一个程序员在公司没有数据库权限意味着什么?完美电竞

类别:公司新闻 发布时间:2023-12-22 21:46:52 浏览:

  权限越高,责任也越大。没有正式环境的数据库恰恰是保护了自己,防止自己不小心犯错给公司或者客户造成不必要的损失。

  还记得之前有个运维就是用了自己写的一个小工具,连上了客户正式环境数据库,执行了锁表操作,导致医院系统无法正常使用,造成重大损失,自己也因此承担相应的法律责任。

  作为程序员来说不见得非要保存正式环境的相关信息,虽然说方便,但是很容易测试正式不分,导致误操作。到时候别为了解决一个bug,丢了一个大西瓜,得不偿失。职场上你做了多少贡献,加了多少班,领导不一定会认可,但是造成了重大损失,你的责任跑不了。

  所以即使解决某个问题,使用了正式的账户,用完之后也要清理掉正式信息,不要给自己留下隐患。

  一般开发人员是不允许拥有数据库操作权限的。因为软件是你开发的,一旦给了你数据库权限,增加了系统数据的泄露篡改的风险。正规的公司一般会有专门的DBA团队来负责维护数据库环境。如果生产开发需要,程序员要获取线上的数据,需要提交工单到DBA团队获取临时权限。

  数据作为当今互联网、IT行业的核心资产,必须得到重视。不合规的管理流程必然导致各种安全风险,很多小公司开发兼任DBA的职责,我就遇到一个开发离职后使用原公司的数据库连接篡改数据牟利,造成了重大的损失。也遇到不专业的数据库管理造成数据库被拖库、被黑客锁表勒索。所以一定要重视数据库的管理,权限尽量保证合规性。

  1生产库的管理权只在运维,全体开发无任何权限(版本升级提供脚本升级数据库),原则是动技术的不碰生产数据,碰数据的不懂业务和技术;

  2测试库管理权限在运维和测试人员,开发无权限,提供升级版本给测试(或者运维);

  这才是正常的。在公司里,都只会有高级别的一个或几个以及DBA才有数据库权限。

  如果是你工作的项目需要访问db,才会给你分配某个数据库的权限,往往是只读,需要其他权限需要额外申请。

  数据是公司业务的基石,要是谁都可以上去操作一把,那就乱套了。万一被删除了被篡改了被窃取了呢,而且公司也有义务保护好客户的资料。

  一个公司的一个软件产品,其实在不同的研发上线的不同阶段,数据库是独立的。这个很好理解,开发环境程序员可以随便改。线上环境可不是谁都有权限的。

  也就是说开发阶段,测试阶段,上线之前,上线之后,这些数据库都是独立的。作为程序员,你不会有所有这些数据库的权限,因为一旦上线产品的数据库,改错了的话,这是很有很大风险的,会为客户带来非常大的损失。

  但比如测试环境的数据库,作为一个开发开发人员正常来说,你有权限去改动,但是你也不能够不通知测试人员的情况下,你自己擅自去改动它。那么测试环境有问题需要你来解决的时候,要和测试同事协商好,你要改什么东西。因为测试的同事呢,他有他的测试任务,你不能阻碍他的工作。

  那么产品上线后的环境呢?只能看不能动!重要事情说三遍,你只能提供解决办法。除非非常非常特殊的情况,但是我在过的公司流程管理很严格,这一步除非大大领导要求,而且要非常谨慎。

  你是程序员做开发的,那么你就在开发的数据环境上,去做你的开发和测试。数据库如果是你搭的你随便改。

  有的公司呢,还会有专门的数据组,那么DBA的这个组呢,他们有更高的一些数据库管理的权限。所以一般来说,那么这种情况下,你的权限就是在你应用程序所控制的那些表的所有操作上了。比如下图,不同用户名有不同操作权限的:

  不同的公司,这个数据库管理的方式也是不一样的,仅从我的经历上来回答这个问题。如果更多疑问可以继续探讨。

  一般正式环境的数据库权限是严格管控的,正式环境的数据库由专门的人员进行操作,比如DBA 、技术leader 。数据是一个企业的核心价值,数据的丢失和泄露对于一个企业来说都是致命的,所以一般人员不允许操作的,假如操作失误也是要承担责任的。数据库需要经常备份,增量备份、全量备份都要做,目的是尽可能的规避风险。

  数据被篡改了,公司的客户可能要炸毛,轻则一顿投诉,重则按照合同问责,追究责任。

  数据泄露了,公司是第一责任体,轻则被问责,重则无穷大,好巧不巧公司还在做着要命的工作,什么政府系,银行系,公共服务系,我觉得公司多半会凉凉。

  程序员本员,即使不是故意的,不小心搞坏了部分数据,或者拷贝了部分数据,也是直接问责,要知道数据虽然由公司制作的软件生产,但是所有权归属于客户,所谓数字资产这就是其中一类,公司作为管家肯定是不能同意把数据随意开放给你的。

  每个项目对数据的保密要求是不同的,或者需要专门的保密员,比如军完美电竞工系,政府系,只有他们才能解除传数据用的介质,或者需要DBA或者保密委员会之类的专门数据交换处理部门,最不济也得按照权限分配和读写账号,一般只让用只读得账号查看数据,反正我是没有见过可以数据裸奔的项目。

  其实,一切的直接操作数据库都可以用功能上线来解决,只不过麻烦一些,流程会多一些。一些需求可能写个脚本提交为工单,让DBA进行审查,把问题修复的时间线拉长,影响范围扩大,我认为这种代价付出也是必要的。

  我要保证我的所有操作都留下了作的痕迹,留足了证据,万一在这段时间有什么异常出现,有人指认是由于我动了数据库造成,我能拿出什么证据来自证清白呢。

  从我自己的日常工作来说,我是非常抵触要数据库权限的,基于以上我的考虑,离生产数据有多远就离多远,我不想做贩卖数据的生意,也不想担数据泄露的责任,如果我的bug导致数据出错,我光明正大的修复认责,做一个专业的程序员。

  十多年前,我还在一个编程,当项目经理,有一天,客户打电话给我,说你们是不是在哪一天,某个时间点,在某台机器上,操作了什么表,查询了什么内容,我当时也不确定,去问了一下我们项目组成员,发现是G同事,G同事也承认了是他操作。

  但是根据工作的分工,他是不需要去查询到那些表的,细问之下,才之后G的同学指使,他也帮那个单位做系统,他们做的是另外的系统,G受到他同学所托,去查询那些数据,G同学又是受到外面其他人所托,我那个同事G,人很简单的,他以为是他们做接口要用什么,根本没有多想,,,,反正这个事情说下去就有点严重啦,,,我感觉这个事情有点复杂,就赶紧上报部门领导,然后部门领导开会教育了G,又赶紧过去跟客户解释道歉,,,后来这个事情就终于过去了。

Copyright © 2012-2023 完美电竞·(中国)官方网站 版权所有 备案号:苏ICP备2020055015号-2