aws redshift

aws redshift,第1张

经过研究文档以及和aws沟通,咱们可以使用以下方案去实现我们的场景。

   1, 我们需要一个IAM 用户,此用户可以有redshift:GetClusterCredentials和redshift:CreateClusterUser策略。也就是可以执行获取用户临时凭证的权限。

{

    "Version": "2012-10-17",

    "Statement": {

        "Effect": "Allow",

        "Action": [

            "redshift:GetClusterCredentials",

            "redshift:CreateClusterUser"

        ],

        "Resource": ""

    }

}

   2,拿到上一部用户的id 和secret,配置到服务器上。

   3,用户在portal登陆后,我们可以拿到用户的itcode,

     使用第一步获得的用户的身份去执行获取 当前用户的临时登录凭证。
{'DbUser': 'IAMA:wangfang12', 'DbPassword': 'AaLWa9+T2IXgxh5T09G1nNNrfg2jzjeBCfuNeeJewUoIKZWVhmslVS/n+RKidt61TjAcuFQ==', 'Expiration': datetimedatetime(2021, 10, 12, 10, 35, 54, 613000, tzinfo=tzutc()), 'ResponseMetadata': {'RequestId': '9ac9554b-f9fe-44a8-9db7-ad538c072e15', '>control包含对对象的drop权限,ALL PRIVILEGES则限制在dml一级。
db2 => create table test(a varchar(10))
DB20000I SQL命令成功完成。
db2 => grant all privileges on test to db2user
DB20000I SQL命令成功完成。
db2 => connect to sample user db2user using db2user
数据库连接信息
数据库服务器 = DB2/NT 950
SQL 授权标识 = DB2USER
本地数据库别名 = SAMPLE
db2 => insert into administratortest values('test')
DB20000I SQL命令成功完成。
db2 => commit
DB20000I SQL命令成功完成。
db2 => drop table administratortest
DB21034E 该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在
SQL 处理期间,它返回:
SQL0551N "DB2USER" 不具有对对象 "ADMINISTRATORTEST" 执行 *** 作 "DROP TABLE"
的特权。 SQLSTATE=42501
db2 => delete from administratortest
DB20000I SQL命令成功完成。
db2 => connect to sample
数据库连接信息
数据库服务器 = DB2/NT 950
SQL 授权标识 = ADMINIST
本地数据库别名 = SAMPLE
db2 => grant control on test to db2user
DB20000I SQL命令成功完成。
db2 => connect to sample user db2user using db2user
数据库连接信息
数据库服务器 = DB2/NT 950
SQL 授权标识 = DB2USER
本地数据库别名 = SAMPLE
db2 => drop table administratortest
DB20000I SQL命令成功完成。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13485452.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-16
下一篇 2023-08-16

发表评论

登录后才能评论

评论列表(0条)

保存