数据库的安全性和完整性

简介: 数据库的安全性和完整性

1.安全性


数据库的安全性是防止不合法的操作造成数据泄露、更改或破坏。这里主要讨论用户标识和鉴别、存取控制、视图和密码存储等安全技术。


1.1用户标识和鉴别


两种常用的方式是用户标识和口令,是最外层的安全保护措施。


1.2存取控制


存取控制是数据库安全性的重点,其机制包括用户安全定义和合法权限检查,有两类方法:自主存取控制(DAC)方法和强制存取控制(MAC)方法。重点是前者


1.2.1自主存取控制


在这方法中,一个用户对不同的对象、不同用户对同一对象有不同的权限,用户还可以实现权限转授。这些过程涉及到两个操作用户权限的授权和回收。

授权(GRANT):

GRANT <权限> [,<权限>]...
ON <对象类型> <对象名> [,<对象类型> <对象名>]...
TO <用户> [,<用户>].. .
[WITH GRANT OPTION];


其中权限有SELECT、ALL PRIVILEGES(所有权限)、INSERT、UPDATE等(基本上就是数据定义,操纵中的语句),具体到属性列的授权要标明属性名。

对象一般是表或视图。

最后一句WITH GRANT OPTION代表被授权用户也可以授予别的用户该权限。

回收(REVOKE):

REVOKE <权限> [,<权限>]...
ON <对象类型> <对象名> [,<对象类型> <对象名>]...
FORM <用户> [,<用户>]...[CASCADE|RESTRICT];


同前面一样,CASCADE是将该用户和该用户授予别人的权限全回收,RESTRICT有局限,这里默认是RESTRICT。


以上两个操作是对数据的操作权限,对数据库模式的授权则由DBA在创建用户时实现。格式如下:

GRANT USER <username>
[WITH] [DBA|RESOURCES|CONNECT];


该语句只有超级用户才能创建一个新的数据库用户,第二行是三种权限:

DBA:超级用户,拥有全部操作

RESOURCES:能够创建表和基本视图,是创建对象的属主,对自己的对象可以授权,但不能创建模式和新用户。

CONNECT:权限最低,只能登陆数据库,然后被授予其他权限后才能实现权限范围内的操作。


1.2.2强制存取控制


分为主体和客体,主体具有许可证级别,客体具有密级,只用许可证级别大于等于客体密级才能读取相应的客体,主要等于客体才能写相应的客体。


MAC和DAC共同组成DBMS的安全机制。


此外关于安全性还有视图机制、审计、数据加密、统计数据库安全性等操作,这里就不再赘述。


2.完整性


完整性是指数据的正确性和相容性。

主要有实体、参照、用户自定义完整性。


2.1实体完整性


是关于主码的操作:用到PRIMARY KEY定义主码,前面已经提过,其有列级定义和表级定义,定义多属性为主码只能用表级定义。

主码不唯一或者为空就拒绝插入修改。


2.2参照完整性


实质就是定义外码:FOREIGN KEY,前面已经提及,其涉及的表分为参照表和被参照表。

参照表中的外码必须在被参照表中存在,故在参照表中修改插入被参照表中不存在的元组会拒绝执行,而若在被参照表中插入删除会有拒绝、级联删除、设置为空值等操作,一般拒绝是默认。


2.3用户定义完整性


主要包括:UNIQUE 列值唯一;NOT NULL 列值非空;CHECK短语

其中CHECK()短语是检查列值是否符合括号内的表达式。


以下综合取个例子:

GREAT TABLE Student(
 sname char(8) NOT NULL
 ssex char(2) CHECK(ssex IN('男','女')//学生性别只能在男女中取
 sno char(9)
 FOREIGN KEY (sno) REFERENCES Course(sno)//外码
 PRIMARY(sname));//设置主码


最后还有个CONSTRAINT完整约束命名子句,其约束命名作用,便于修改删除,了解即可。

相关文章
|
2月前
|
存储 数据库 数据库管理
数据库事务安全性控制如何实现呢
【10月更文挑战第15天】数据库事务安全性控制如何实现呢
|
2月前
|
存储 数据库 数据库管理
什么是数据库事务安全性控制
【10月更文挑战第15天】什么是数据库事务安全性控制
|
2月前
|
供应链 数据库
数据库事务安全性控制有什么应用场景吗
【10月更文挑战第15天】数据库事务安全性控制有什么应用场景吗
ly~
|
2月前
|
存储 监控 安全
如何评估云数据库的安全性?
评估云数据库安全性需关注基础架构与物理安全、网络基础设施、电力与冷却系统;访问控制与身份验证,包括多因素身份验证、基于角色的访问控制、身份验证强度;数据加密,涉及传输加密、存储加密、密钥管理;备份与恢复,涵盖备份策略、恢复测试、异地备份;安全审计与监控,如审计日志、实时监控、漏洞扫描与渗透测试;合规性,包括法规遵循、认证与合规证明;以及云服务提供商的信誉与技术支持。
ly~
105 4
ly~
|
2月前
|
存储 安全 网络安全
云数据库的安全性如何保障?
云数据库的安全性可通过多种方式保障,包括多因素身份验证、基于角色的访问控制及最小权限原则,确保仅有授权用户能访问所需数据;采用SSL/TLS加密传输和存储数据,加强密钥管理,防止数据泄露;定期备份数据并进行异地存储与恢复演练,确保数据完整性;通过审计日志、实时监控及安全分析,及时发现并应对潜在威胁;利用防火墙、入侵检测系统和VPN保护网络安全;选择信誉良好的云服务提供商,确保数据隔离及定期安全更新。
ly~
256 1
|
5月前
|
存储 SQL 关系型数据库
数据库事务:确保数据完整性的关键20
【7月更文挑战第20天】事务是数据库操作的基本逻辑单位,确保数据一致性。ACID原则包括:原子性(操作全成或全败),一致性(事务前后数据合法性),隔离性(并发操作互不影响),持久性(提交后更改永久保存)。MySQL的InnoDB引擎支持事务,通过undo log实现回滚,redo log确保数据持久化。开启事务可使用`BEGIN`或`START TRANSACTION`,提交`COMMIT`,回滚`ROLLBACK`。
185 70
|
2月前
|
存储 关系型数据库 MySQL
四种数据库对比MySQL、PostgreSQL、ClickHouse、MongoDB——特点、性能、扩展性、安全性、适用场景
四种数据库对比 MySQL、PostgreSQL、ClickHouse、MongoDB——特点、性能、扩展性、安全性、适用场景
|
4月前
|
安全 关系型数据库 数据库
FastAPI数据库操作秘籍:如何通过高效且安全的数据库访问策略,使你的Web应用飞速运转并保持数据完整性?
【8月更文挑战第31天】在构建现代Web应用时,数据库操作至关重要。FastAPI不仅简化了API创建,还提供了高效数据库交互的方法。本文探讨如何在FastAPI中实现快速、安全的数据处理。FastAPI支持多种数据库,如SQLite、PostgreSQL和MySQL;选择合适的数据库可显著提升性能。通过安装相应驱动并配置连接参数,结合ORM库(如Tortoise-ORM或SQLAlchemy),可以简化数据库操作。使用索引、批量操作及异步处理等最佳实践可进一步提高效率。同时,确保使用参数化查询防止SQL注入,并从环境变量中读取敏感信息以增强安全性。
232 1
|
4月前
|
存储 数据管理 数据库
约束:数据库完整性的守护者
【8月更文挑战第31天】
24 0
|
4月前
|
SQL 数据管理 关系型数据库
SQL与云计算:利用云数据库服务实现高效数据管理——探索云端SQL应用、性能优化、安全性与成本效益,为企业数字化转型提供全方位支持
【8月更文挑战第31天】在数字化转型中,企业对高效数据管理的需求日益增长。传统本地数据库存在局限,而云数据库服务凭借自动扩展、高可用性和按需付费等优势,成为现代数据管理的新选择。本文探讨如何利用SQL和云数据库服务(如Amazon RDS、Google Cloud SQL和Azure SQL Database)实现高效的数据管理。通过示例和最佳实践,展示SQL在云端的应用、性能优化、安全性及成本效益,助力企业提升竞争力。
80 0