MySQL5新特点(视图)
时间:2007-02-17 来源:PHP爱好者
视图,就是把数据库中单个表或多个用JOIN连接起来的表中的数据,通过提取并生成到一个新窗口的方式提供给用户察看的一种功能。数据库开发和管理人员广泛使用视图功能主要基于如下两个原因:
对数据库安全的管理
-视图可以通过隐藏元表中的某些敏感信息列来帮助保护敏感数据,这些元表可以是单个实际表,或 者是JOIN表,通过限制从这些元表中可以返回的实际的数据行,或解密已保存在磁盘上的加密数据来实现对数据库的安全 管理。
优化数据库的性能
-视图可以用来帮助调优数据库性能,就是通过预定义一个微调过的JOIN条件建立的多表视图,或通过限制只允许少量数据从巨大的数据库表中返回来实现。
MySQL5所支持的视图功能在一定条件下可以实现使 用视图来执行某些UPDATE语句,使那些数据可以得到更新,下面举例说明:mysql> select * from customer; ------------- --------------------- -------------------- ------------------ | customer_id | customer_first_name | customer_last_name | customer_ssn | ------------- --------------------- -------------------- ------------------ | 1 | fred | smith | ☼Q,U¶ ¢ƒ╠▒4╨☺ö| ------------- --------------------- -------------------- ------------------ 1 row in set (0.03 sec) mysql> create view v_customer as t_name, -> select customer_id, customer_first_name, customer_last_name -> aes_decrypt(cusomer_ssn,'password') as customer_ssn -> from customer; Query OK, 0 rows affected (0.03 sec) mysql> select * from v_customer; ------------- --------------------- -------------------- -------------- | customer_id | customer_first_name | customer_last_name | customer_ssn | ------------- --------------------- -------------------- -------------- | 1 | fred | smith | 456097234 | ------------- --------------------- -------------------- -------------- 从上例可以看到,通过使用解密函数aes_decrypt()得到指定的customer_ssn的值并利用创建视图的方式把该值显示出来,而且 并未破环原始表对其他customer_ssn值在磁盘或数据库的加密式存放。这样管理人员就保证敏感信息不会被随意破坏
php爱好者站 http://www.phpfans.net PHP|MySQL|javascript|ajax|html.
对数据库安全的管理
-视图可以通过隐藏元表中的某些敏感信息列来帮助保护敏感数据,这些元表可以是单个实际表,或 者是JOIN表,通过限制从这些元表中可以返回的实际的数据行,或解密已保存在磁盘上的加密数据来实现对数据库的安全 管理。
优化数据库的性能
-视图可以用来帮助调优数据库性能,就是通过预定义一个微调过的JOIN条件建立的多表视图,或通过限制只允许少量数据从巨大的数据库表中返回来实现。
MySQL5所支持的视图功能在一定条件下可以实现使 用视图来执行某些UPDATE语句,使那些数据可以得到更新,下面举例说明:mysql> select * from customer; ------------- --------------------- -------------------- ------------------ | customer_id | customer_first_name | customer_last_name | customer_ssn | ------------- --------------------- -------------------- ------------------ | 1 | fred | smith | ☼Q,U¶ ¢ƒ╠▒4╨☺ö| ------------- --------------------- -------------------- ------------------ 1 row in set (0.03 sec) mysql> create view v_customer as t_name, -> select customer_id, customer_first_name, customer_last_name -> aes_decrypt(cusomer_ssn,'password') as customer_ssn -> from customer; Query OK, 0 rows affected (0.03 sec) mysql> select * from v_customer; ------------- --------------------- -------------------- -------------- | customer_id | customer_first_name | customer_last_name | customer_ssn | ------------- --------------------- -------------------- -------------- | 1 | fred | smith | 456097234 | ------------- --------------------- -------------------- -------------- 从上例可以看到,通过使用解密函数aes_decrypt()得到指定的customer_ssn的值并利用创建视图的方式把该值显示出来,而且 并未破环原始表对其他customer_ssn值在磁盘或数据库的加密式存放。这样管理人员就保证敏感信息不会被随意破坏
php爱好者站 http://www.phpfans.net PHP|MySQL|javascript|ajax|html.
相关阅读 更多 +