/*--创建一个只允许特定程序使用的定序数据举例库用户
创建一个用户,这个用户只有用峩们特定的应用程序登录
才具有访问定序数据举例库的权限,用其他工具登录没有任何权限
在下面的示例中,演示了如何控制登录l_test
使其登录後只允许访问pubs定序数据举例库的titles表
而对jobs表的访问权限只允许在某些许可的应用程序中访问。
--创建好上面的测试后,现在来测试如何使用应鼡程序角色
--我们把用户及密码告诉使用者,即告诉使用者,用户是: l_test,密码是: pwd
--使用者可以用我们这个用户在任何地方登录,包含查询分析器
--但是,用户呮能访问 titles 表,不能访问其他对象,如果建立用户时不授予它任何权限,则它不访问除guest用户和public角色允许访问外的任何对象
--OK,到这里,我们是把用户控制住了
--下面我们再来说在程序中的处理,因为用户在程序中登录后,需要对jobs表有访问权限的
--我们只需要在用户登录后,执行一句
--这样,我们登录的用戶就转变为 r_p_test 角色的权限,而它自身的权限丢失
--只要这个用户不退出应用程序,他的权限就会保持
--如果用户退出了当前应用程序,则他的权限自动收回
--同时,这个用户即使没有退出应用程序,他也是只在我们的应用程序中有权限,在其他地方登录,也不会有权限
--因为这个密码我们是不用给用戶的,所以,用户没有这个角色的密码,也就限制了他只能在程序中使用我们的定序数据举例
--激活应用程序角色 r_p_test 前登录具有表 titles 的访问权,但无表 jobs 的访问权
(所影响的行数为 1 行)
--激活应用程序角色 r_p_test 后登录失去表 titles 的访问权,获取表 jobs 的访问权
(所影响的行数为 1 行)